Use gtk_target_table_new_from_list and gtk_target_table_free instead of

2007-01-14  Christian Persch  <chpe@svn.gnome.org>

	* gtk/gtkclipboard.c: (gtk_clipboard_set_text),
	(gtk_clipboard_set_image): Use gtk_target_table_new_from_list and
	gtk_target_table_free instead of duplicating the code. Bug #396493.

svn path=/trunk/; revision=17152
This commit is contained in:
Christian Persch 2007-01-14 18:47:36 +00:00 committed by Christian Persch
parent 653d2932b2
commit 6400dda3a0
2 changed files with 12 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2007-01-14 Christian Persch <chpe@svn.gnome.org>
* gtk/gtkclipboard.c: (gtk_clipboard_set_text),
(gtk_clipboard_set_image): Use gtk_target_table_new_from_list and
gtk_target_table_free instead of duplicating the code. Bug #396493.
2007-01-13 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkuimanager.c: Don't crash if menu or toolbar

View File

@ -728,9 +728,8 @@ gtk_clipboard_set_text (GtkClipboard *clipboard,
gint len)
{
GtkTargetList *list;
GList *l;
GtkTargetEntry *targets;
gint n_targets, i;
gint n_targets;
g_return_if_fail (clipboard != NULL);
g_return_if_fail (text != NULL);
@ -738,13 +737,7 @@ gtk_clipboard_set_text (GtkClipboard *clipboard,
list = gtk_target_list_new (NULL, 0);
gtk_target_list_add_text_targets (list, 0);
n_targets = g_list_length (list->list);
targets = g_new0 (GtkTargetEntry, n_targets);
for (l = list->list, i = 0; l; l = l->next, i++)
{
GtkTargetPair *pair = (GtkTargetPair *)l->data;
targets[i].target = gdk_atom_name (pair->target);
}
targets = gtk_target_table_new_from_list (list, &n_targets);
if (len < 0)
len = strlen (text);
@ -755,9 +748,7 @@ gtk_clipboard_set_text (GtkClipboard *clipboard,
g_strndup (text, len));
gtk_clipboard_set_can_store (clipboard, NULL, 0);
for (i = 0; i < n_targets; i++)
g_free (targets[i].target);
g_free (targets);
gtk_target_table_free (targets, n_targets);
gtk_target_list_unref (list);
}
@ -794,9 +785,8 @@ gtk_clipboard_set_image (GtkClipboard *clipboard,
GdkPixbuf *pixbuf)
{
GtkTargetList *list;
GList *l;
GtkTargetEntry *targets;
gint n_targets, i;
gint n_targets;
g_return_if_fail (clipboard != NULL);
g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
@ -804,13 +794,7 @@ gtk_clipboard_set_image (GtkClipboard *clipboard,
list = gtk_target_list_new (NULL, 0);
gtk_target_list_add_image_targets (list, 0, TRUE);
n_targets = g_list_length (list->list);
targets = g_new0 (GtkTargetEntry, n_targets);
for (l = list->list, i = 0; l; l = l->next, i++)
{
GtkTargetPair *pair = (GtkTargetPair *)l->data;
targets[i].target = gdk_atom_name (pair->target);
}
targets = gtk_target_table_new_from_list (list, &n_targets);
gtk_clipboard_set_with_data (clipboard,
targets, n_targets,
@ -818,9 +802,7 @@ gtk_clipboard_set_image (GtkClipboard *clipboard,
g_object_ref (pixbuf));
gtk_clipboard_set_can_store (clipboard, NULL, 0);
for (i = 0; i < n_targets; i++)
g_free (targets[i].target);
g_free (targets);
gtk_target_table_free (targets, n_targets);
gtk_target_list_unref (list);
}