summaryrefslogtreecommitdiff
path: root/gtk/gtkclipboard.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@svn.gnome.org>2007-01-14 18:47:36 +0000
committerChristian Persch <chpe@src.gnome.org>2007-01-14 18:47:36 +0000
commit6400dda3a0ae38f89bbd3d09d76213d6270988b4 (patch)
tree52a68f41eac47e8675c782892f736e2497ebc388 /gtk/gtkclipboard.c
parent653d2932b254f44b6fdc08adf962e9880b52297c (diff)
downloadgtk+-6400dda3a0ae38f89bbd3d09d76213d6270988b4.tar.gz
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
Diffstat (limited to 'gtk/gtkclipboard.c')
-rw-r--r--gtk/gtkclipboard.c30
1 files changed, 6 insertions, 24 deletions
diff --git a/gtk/gtkclipboard.c b/gtk/gtkclipboard.c
index a2f0fcb765..ec8ad9d06a 100644
--- a/gtk/gtkclipboard.c
+++ b/gtk/gtkclipboard.c
@@ -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);
}