[gtk/dnd-gestures: 6/8] tests: Convert to GtkDragSource
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/dnd-gestures: 6/8] tests: Convert to GtkDragSource
- Date: Wed, 1 Jan 2020 18:05:20 +0000 (UTC)
commit 36c27cb4322d34fbc6565554ba288a33819ee761
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Dec 31 21:10:15 2019 -0500
tests: Convert to GtkDragSource
Some tests, such as testimage did not have
anything particularly worth keeping, so
were removed instead of fixed.
tests/meson.build | 1 -
tests/testdnd.c | 44 ++-----
tests/testdnd2.c | 329 ++++++++++++++++++++----------------------------
tests/testentryicons.c | 14 ---
tests/testimage.c | 178 --------------------------
tests/testlist3.c | 36 ++----
tests/testnotebookdnd.c | 21 ----
tests/testtoolbar.c | 10 +-
8 files changed, 168 insertions(+), 465 deletions(-)
---
diff --git a/tests/meson.build b/tests/meson.build
index aa16f4fde7..dfb4b4d6c5 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -53,7 +53,6 @@ gtk_tests = [
['testiconview-keynav'],
['testicontheme'],
['testinfobar'],
- ['testimage'],
['testkineticscrolling'],
['testlist'],
['testlist2'],
diff --git a/tests/testdnd.c b/tests/testdnd.c
index dfc9bceac1..03e1011ef6 100644
--- a/tests/testdnd.c
+++ b/tests/testdnd.c
@@ -313,8 +313,6 @@ target_drag_motion (GtkWidget *widget,
gint x,
gint y)
{
- GtkWidget *source_widget;
- GdkDrag *drag;
char *s;
if (!have_drag)
@@ -323,12 +321,6 @@ target_drag_motion (GtkWidget *widget,
gtk_image_set_from_pixbuf (GTK_IMAGE (widget), trashcan_open);
}
- drag = gdk_drop_get_drag (drop);
- source_widget = drag ? gtk_drag_get_source_widget (drag) : NULL;
- g_print ("motion, source %s\n", source_widget ?
- G_OBJECT_TYPE_NAME (source_widget) :
- "NULL");
-
s = gdk_content_formats_to_string (gdk_drop_get_formats (drop));
g_print ("%s\n", s);
@@ -416,20 +408,6 @@ label_drag_data_received (GtkWidget *widget,
gdk_drop_finish (drop, 0);
}
-void
-source_drag_data_get (GtkWidget *widget,
- GdkDrag *drag,
- GtkSelectionData *selection_data,
- gpointer data)
-{
- if (gtk_selection_data_get_target (selection_data) == g_intern_static_string
("application/x-rootwindow-drop"))
- g_print ("I was dropped on the rootwin\n");
- else
- gtk_selection_data_set (selection_data,
- gtk_selection_data_get_target (selection_data),
- 8, (guchar *) "I'm Data!", 9);
-}
-
/* The following is a rather elaborate example demonstrating/testing
* changing of the window hierarchy during a drag - in this case,
* via a "spring-loaded" popup window.
@@ -564,7 +542,6 @@ popsite_leave (GtkWidget *widget,
void
source_drag_data_delete (GtkWidget *widget,
- GdkDrag *drag,
gpointer data)
{
g_print ("Delete the data!\n");
@@ -587,6 +564,9 @@ main (int argc, char **argv)
GtkWidget *button;
GdkPixbuf *drag_icon;
GdkTexture *texture;
+ GdkContentProvider *content;
+ GValue value = G_VALUE_INIT;
+ GtkDragSource *source;
GdkContentFormats *targets;
test_init ();
@@ -661,12 +641,14 @@ main (int argc, char **argv)
button = gtk_button_new_with_label ("Drag Here\n");
- targets = gdk_content_formats_new (target_table, n_targets);
- gtk_drag_source_set (button, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
- targets,
- GDK_ACTION_COPY | GDK_ACTION_MOVE);
- gtk_drag_source_set_icon_paintable (button, GDK_PAINTABLE (texture));
- gdk_content_formats_unref (targets);
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, "I'm data!");
+ content = gdk_content_provider_new_for_value (&value);
+ g_value_unset (&value);
+ source = gtk_drag_source_new (content, GDK_ACTION_COPY | GDK_ACTION_MOVE);
+ gtk_drag_source_attach (source, button, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK);
+ gtk_drag_source_set_icon (source, GDK_PAINTABLE (texture), 0, 0);
+ g_object_unref (source);
g_object_unref (texture);
@@ -674,9 +656,7 @@ main (int argc, char **argv)
gtk_widget_set_vexpand (button, TRUE);
gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 1, 1);
- g_signal_connect (button, "drag-data-get",
- G_CALLBACK (source_drag_data_get), NULL);
- g_signal_connect (button, "drag-data-delete",
+ g_signal_connect (source, "drag-data-delete",
G_CALLBACK (source_drag_data_delete), NULL);
gtk_widget_show (window);
diff --git a/tests/testdnd2.c b/tests/testdnd2.c
index 5505055d0e..382b56bef1 100644
--- a/tests/testdnd2.c
+++ b/tests/testdnd2.c
@@ -37,114 +37,12 @@ enum {
BOTTOM_RIGHT
};
-static void
-image_drag_begin (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
-{
- GdkPaintable *paintable;
- gint hotspot;
- gint hot_x, hot_y;
- gint size;
-
- paintable = get_image_paintable (GTK_IMAGE (data), &size);
- hotspot = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (data), "hotspot"));
- switch (hotspot)
- {
- default:
- case TOP_LEFT:
- hot_x = 0;
- hot_y = 0;
- break;
- case CENTER:
- hot_x = size / 2;
- hot_y = size / 2;
- break;
- case BOTTOM_RIGHT:
- hot_x = size;
- hot_y = size;
- break;
- }
- gtk_drag_set_icon_paintable (drag, paintable, hot_x, hot_y);
- g_object_unref (paintable);
-}
-
-static void
-drag_widget_destroyed (GtkWidget *image, gpointer data)
-{
- GtkWidget *widget = data;
-
- g_print ("drag widget destroyed\n");
- g_object_unref (image);
- g_object_set_data (G_OBJECT (widget), "drag widget", NULL);
-}
-
-static void
-window_drag_end (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
-{
- GtkWidget *window = data;
-
- gtk_widget_destroy (window);
- g_signal_handlers_disconnect_by_func (widget, window_drag_end, data);
-}
-
-static void
-window_drag_begin (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
-{
- GdkPaintable *paintable;
- GtkWidget *image;
- int hotspot;
- int size;
-
- hotspot = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (data), "hotspot"));
-
- image = g_object_get_data (G_OBJECT (widget), "drag widget");
- if (image == NULL)
- {
- g_print ("creating new drag widget\n");
- paintable = get_image_paintable (GTK_IMAGE (data), &size);
- image = gtk_image_new_from_paintable (paintable);
- g_object_unref (paintable);
- g_object_ref (image);
- g_object_set_data (G_OBJECT (widget), "drag widget", image);
- g_signal_connect (image, "destroy", G_CALLBACK (drag_widget_destroyed), widget);
- }
- else
- g_print ("reusing drag widget\n");
-
- gtk_drag_set_icon_widget (drag, image, 0, 0);
-
- if (hotspot == CENTER)
- g_signal_connect (widget, "drag-end", G_CALLBACK (window_drag_end), image);
-}
-
-static void
-update_source_target_list (GtkWidget *image)
-{
- GdkContentFormats *target_list;
-
- target_list = gdk_content_formats_new (NULL, 0);
-
- target_list = gtk_content_formats_add_image_targets (target_list, FALSE);
- if (gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_ICON_NAME)
- target_list = gtk_content_formats_add_text_targets (target_list);
-
- gtk_drag_source_set_target_list (image, target_list);
-
- gdk_content_formats_unref (target_list);
-}
-
static void
update_dest_target_list (GtkWidget *image)
{
GdkContentFormats *target_list;
target_list = gdk_content_formats_new (NULL, 0);
-
target_list = gtk_content_formats_add_image_targets (target_list, FALSE);
target_list = gtk_content_formats_add_text_targets (target_list);
@@ -191,149 +89,194 @@ image_drag_data_received (GtkWidget *widget,
GtkSelectionData *selection_data,
gpointer data)
{
+ GdkTexture *texture;
gchar *text;
if (gtk_selection_data_get_length (selection_data) == 0)
return;
- if (gtk_selection_data_targets_include_image (selection_data, FALSE))
+ texture = gtk_selection_data_get_texture (selection_data);
+ if (texture)
{
- GdkTexture *texture;
-
- texture = gtk_selection_data_get_texture (selection_data);
- gtk_image_set_from_paintable (GTK_IMAGE (data), GDK_PAINTABLE (texture));
-
+ gtk_image_set_from_paintable (GTK_IMAGE (widget), GDK_PAINTABLE (texture));
g_object_unref (texture);
+ return;
}
- else if (gtk_selection_data_targets_include_text (selection_data))
+
+ text = (gchar *)gtk_selection_data_get_text (selection_data);
+ if (text)
{
- text = (gchar *)gtk_selection_data_get_text (selection_data);
- gtk_image_set_from_icon_name (GTK_IMAGE (data), text);
+ gtk_image_set_from_icon_name (GTK_IMAGE (widget), text);
g_free (text);
}
- else
+}
+
+static void
+update_source_icon (GtkDragSource *source,
+ const char *icon_name,
+ int hotspot)
+{
+ GdkPaintable *paintable;
+ int hot_x, hot_y;
+ int size = 48;
+
+ paintable = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+ icon_name, size, 0, NULL);
+ switch (hotspot)
{
- g_assert_not_reached ();
+ default:
+ case TOP_LEFT:
+ hot_x = 0;
+ hot_y = 0;
+ break;
+ case CENTER:
+ hot_x = size / 2;
+ hot_y = size / 2;
+ break;
+ case BOTTOM_RIGHT:
+ hot_x = size;
+ hot_y = size;
+ break;
}
+ gtk_drag_source_set_icon (source, paintable, hot_x, hot_y);
+ g_object_unref (paintable);
}
-
-GtkWidget *
-make_image (const gchar *icon_name, int hotspot)
+static GBytes *
+get_data (const char *mimetype,
+ gpointer data)
{
- GtkWidget *image;
+ GtkWidget *image = data;
+ GdkContentFormats *formats;
+ gboolean want_text;
- image = gtk_image_new_from_icon_name (icon_name);
- gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
+ formats = gdk_content_formats_new (NULL, 0);
+ formats = gtk_content_formats_add_text_targets (formats);
+ want_text = gdk_content_formats_contain_mime_type (formats, mimetype);
+ gdk_content_formats_unref (formats);
- gtk_drag_source_set (image, GDK_BUTTON1_MASK, NULL, GDK_ACTION_COPY);
- update_source_target_list (image);
+ g_print ("get data called for %s\n", mimetype);
+ if (want_text)
+ {
+ const char *text = gtk_image_get_icon_name (GTK_IMAGE (image));
- g_object_set_data (G_OBJECT (image), "hotspot", GINT_TO_POINTER (hotspot));
+ return g_bytes_new (text, strlen (text) + 1);
+ }
+ else if (strcmp (mimetype, "image/png") == 0)
+ {
+ int size;
+ GdkPaintable *paintable = get_image_paintable (GTK_IMAGE (image), &size);
+ if (GDK_IS_TEXTURE (paintable))
+ {
+ char *name = g_strdup ("drag-data-XXXXXX");
+ int fd;
+ char *data;
+ gsize size;
- g_signal_connect (image, "drag-begin", G_CALLBACK (image_drag_begin), image);
- g_signal_connect (image, "drag-data-get", G_CALLBACK (image_drag_data_get), image);
+ // FIXME: this is horrible
- gtk_drag_dest_set (image, GTK_DEST_DEFAULT_ALL, NULL, GDK_ACTION_COPY);
- g_signal_connect (image, "drag-data-received", G_CALLBACK (image_drag_data_received), image);
- update_dest_target_list (image);
+ fd = g_mkstemp (name);
+ close (fd);
- return image;
+ gdk_texture_save_to_png (GDK_TEXTURE (paintable), name);
+
+ g_file_get_contents (name, &data, &size, NULL);
+ g_free (name);
+
+ return g_bytes_new_take (data, size);
+ }
+
+ g_clear_object (&paintable);
+ }
+ return NULL;
+}
+
+static void
+drag_begin (GtkDragSource *source)
+{
+ g_print ("drag begin\n");
+}
+
+static void
+drag_end (GtkDragSource *source)
+{
+ g_print ("drag end\n");
+}
+
+static gboolean
+drag_failed (GtkDragSource *source, GdkDragCancelReason reason)
+{
+ g_print ("drag failed: %d\n", reason);
+ return FALSE;
}
GtkWidget *
-make_image2 (const gchar *icon_name, int hotspot)
+make_image (const gchar *icon_name, int hotspot)
{
GtkWidget *image;
+ GtkDragSource *source;
+ GdkContentFormats *formats;
+ GdkContentProvider *content;
image = gtk_image_new_from_icon_name (icon_name);
gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
- gtk_drag_source_set (image, GDK_BUTTON1_MASK, NULL, GDK_ACTION_COPY);
- update_source_target_list (image);
+ formats = gdk_content_formats_new (NULL, 0);
+ formats = gtk_content_formats_add_image_targets (formats, FALSE);
+ formats = gtk_content_formats_add_text_targets (formats);
- g_object_set_data (G_OBJECT (image), "hotspot", GINT_TO_POINTER (hotspot));
+ content = gdk_content_provider_new_with_formats (formats, get_data, image);
+ source = gtk_drag_source_new (content, GDK_ACTION_COPY);
+ g_object_unref (content);
+ gdk_content_formats_unref (formats);
+ update_source_icon (source, icon_name, hotspot);
- g_signal_connect (image, "drag-begin", G_CALLBACK (window_drag_begin), image);
- g_signal_connect (image, "drag-data-get", G_CALLBACK (image_drag_data_get), image);
+ g_signal_connect (source, "drag-begin", G_CALLBACK (drag_begin), NULL);
+ g_signal_connect (source, "drag-end", G_CALLBACK (drag_end), NULL);
+ g_signal_connect (source, "drag-failed", G_CALLBACK (drag_failed), NULL);
+ gtk_drag_source_attach (source, image, GDK_BUTTON1_MASK);
+ g_object_set_data_full (G_OBJECT (image), "source", source, g_object_unref);
+ g_object_unref (source);
gtk_drag_dest_set (image, GTK_DEST_DEFAULT_ALL, NULL, GDK_ACTION_COPY);
- g_signal_connect (image, "drag-data-received", G_CALLBACK (image_drag_data_received), image);
+ g_signal_connect (image, "drag-data-received", G_CALLBACK (image_drag_data_received), NULL);
update_dest_target_list (image);
return image;
}
static void
-spinner_drag_begin (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
-{
- GtkWidget *spinner;
-
- g_print ("GtkWidget::drag-begin\n");
- spinner = g_object_new (GTK_TYPE_SPINNER,
- "visible", TRUE,
- "active", TRUE,
- NULL);
- gtk_drag_set_icon_widget (drag, spinner, 0, 0);
- g_object_set_data (G_OBJECT (drag), "spinner", spinner);
-}
-
-static void
-spinner_drag_end (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
-{
- GtkWidget *spinner;
-
- g_print ("GtkWidget::drag-end\n");
- spinner = g_object_get_data (G_OBJECT (drag), "spinner");
- gtk_widget_destroy (spinner);
-}
-
-static gboolean
-spinner_drag_failed (GtkWidget *widget,
- GdkDrag *drag,
- GtkDragResult result,
- gpointer data)
+spinner_drag_begin (GtkDragSource *source,
+ GtkWidget *widget)
{
- GTypeClass *class;
- GEnumValue *value;
-
- class = g_type_class_ref (GTK_TYPE_DRAG_RESULT);
- value = g_enum_get_value (G_ENUM_CLASS (class), result);
- g_print ("GtkWidget::drag-failed %s\n", value->value_nick);
- g_type_class_unref (class);
-
- return FALSE;
-}
+ GdkPaintable *paintable;
-void
-spinner_drag_data_get (GtkWidget *widget,
- GdkDrag *drag,
- GtkSelectionData *selection_data,
- gpointer data)
-{
- g_print ("GtkWidget::drag-data-get\n");
- gtk_selection_data_set_text (selection_data, "ACTIVE", -1);
+ paintable = gtk_widget_paintable_new (widget);
+ gtk_drag_source_set_icon (source, paintable, 0, 0);
+ g_object_unref (paintable);
}
static GtkWidget *
make_spinner (void)
{
GtkWidget *spinner;
+ GtkDragSource *source;
+ GdkContentProvider *content;
+ GValue value = G_VALUE_INIT;
spinner = gtk_spinner_new ();
gtk_spinner_start (GTK_SPINNER (spinner));
- gtk_drag_source_set (spinner, GDK_BUTTON1_MASK, NULL, GDK_ACTION_COPY);
- gtk_drag_source_add_text_targets (spinner);
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, "ACTIVE");
+ content = gdk_content_provider_new_for_value (&value);
+ source = gtk_drag_source_new (content, GDK_ACTION_COPY);
+ gtk_drag_source_attach (source, spinner, GDK_BUTTON1_MASK);
+ g_signal_connect (source, "drag-begin", G_CALLBACK (spinner_drag_begin), spinner);
+ g_object_unref (source);
- g_signal_connect (spinner, "drag-begin", G_CALLBACK (spinner_drag_begin), spinner);
- g_signal_connect (spinner, "drag-end", G_CALLBACK (spinner_drag_end), spinner);
- g_signal_connect (spinner, "drag-failed", G_CALLBACK (spinner_drag_failed), spinner);
- g_signal_connect (spinner, "drag-data-get", G_CALLBACK (spinner_drag_data_get), spinner);
+ g_object_unref (content);
+ g_value_unset (&value);
return spinner;
}
@@ -367,9 +310,9 @@ main (int argc, char *Argv[])
gtk_grid_attach (GTK_GRID (grid), make_spinner (), 0, 2, 1, 1);
gtk_grid_attach (GTK_GRID (grid), make_image ("weather-clear", CENTER), 1, 2, 1, 1);
- gtk_grid_attach (GTK_GRID (grid), make_image2 ("dialog-question", TOP_LEFT), 0, 3, 1, 1);
+ gtk_grid_attach (GTK_GRID (grid), make_image ("dialog-question", TOP_LEFT), 0, 3, 1, 1);
- gtk_grid_attach (GTK_GRID (grid), make_image2 ("dialog-information", CENTER), 1, 3, 1, 1);
+ gtk_grid_attach (GTK_GRID (grid), make_image ("dialog-information", CENTER), 1, 3, 1, 1);
gtk_widget_show (window);
gtk_main ();
diff --git a/tests/testentryicons.c b/tests/testentryicons.c
index e5af8e6c85..54352a4e5b 100644
--- a/tests/testentryicons.c
+++ b/tests/testentryicons.c
@@ -8,18 +8,6 @@ clear_pressed (GtkEntry *entry, gint icon, gpointer data)
gtk_editable_set_text (GTK_EDITABLE (entry), "");
}
-static void
-drag_begin_cb (GtkWidget *widget,
- GdkDrag *drag,
- gpointer user_data)
-{
- gint pos;
-
- pos = gtk_entry_get_current_icon_drag_source (GTK_ENTRY (widget));
- if (pos != -1)
- gtk_drag_set_icon_name (drag, "dialog-information", 2, 2);
-}
-
static void
set_blank (GtkWidget *button,
GtkEntry *entry)
@@ -171,8 +159,6 @@ main (int argc, char **argv)
gtk_entry_set_icon_drag_source (GTK_ENTRY (entry),
GTK_ENTRY_ICON_PRIMARY,
content, GDK_ACTION_COPY);
- g_signal_connect_after (entry, "drag-begin",
- G_CALLBACK (drag_begin_cb), NULL);
g_object_unref (content);
/*
diff --git a/tests/testlist3.c b/tests/testlist3.c
index 2f6aba8450..4a7a2adc3c 100644
--- a/tests/testlist3.c
+++ b/tests/testlist3.c
@@ -5,9 +5,8 @@ static const char *entries[] = {
};
static void
-drag_begin (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
+drag_begin (GtkDragSource *source,
+ GtkWidget *widget)
{
GtkWidget *row;
GtkAllocation alloc;
@@ -19,26 +18,11 @@ drag_begin (GtkWidget *widget,
paintable = gtk_widget_paintable_new (row);
gtk_widget_translate_coordinates (widget, row, 0, 0, &x, &y);
- gtk_drag_set_icon_paintable (drag, paintable, -x, -y);
+ gtk_drag_source_set_icon (source, paintable, -x, -y);
g_object_unref (paintable);
}
-
-void
-drag_data_get (GtkWidget *widget,
- GdkDrag *drag,
- GtkSelectionData *selection_data,
- gpointer data)
-{
- gtk_selection_data_set (selection_data,
- g_intern_static_string ("GTK_LIST_BOX_ROW"),
- 32,
- (const guchar *)&widget,
- sizeof (gpointer));
-}
-
-
static void
drag_data_received (GtkWidget *widget,
GdkDrop *drop,
@@ -69,7 +53,10 @@ static GtkWidget *
create_row (const gchar *text)
{
GtkWidget *row, *box, *label, *image;
+ GBytes *bytes;
+ GdkContentProvider *content;
GdkContentFormats *targets;
+ GtkDragSource *source;
row = gtk_list_box_row_new ();
image = gtk_image_new_from_icon_name ("open-menu-symbolic");
@@ -81,11 +68,14 @@ create_row (const gchar *text)
gtk_container_add (GTK_CONTAINER (box), label);
gtk_container_add (GTK_CONTAINER (box), image);
- targets = gdk_content_formats_new (entries, 1);
+ bytes = g_bytes_new (&row, sizeof (gpointer));
+ content = gdk_content_provider_new_for_bytes ("GTK_LIST_BOX_ROW", bytes);
+ source = gtk_drag_source_new (content, GDK_ACTION_MOVE);
+ g_signal_connect (source, "drag-begin", G_CALLBACK (drag_begin), image);
+ gtk_drag_source_attach (source, image, GDK_BUTTON1_MASK);
+ g_object_unref (source);
- gtk_drag_source_set (image, GDK_BUTTON1_MASK, targets, GDK_ACTION_MOVE);
- g_signal_connect (image, "drag-begin", G_CALLBACK (drag_begin), NULL);
- g_signal_connect (image, "drag-data-get", G_CALLBACK (drag_data_get), NULL);
+ targets = gdk_content_formats_new (entries, 1);
gtk_drag_dest_set (row, GTK_DEST_DEFAULT_ALL, targets, GDK_ACTION_MOVE);
g_signal_connect (row, "drag-data-received", G_CALLBACK (drag_data_received), NULL);
diff --git a/tests/testnotebookdnd.c b/tests/testnotebookdnd.c
index 543b8186f3..44e8f095d7 100644
--- a/tests/testnotebookdnd.c
+++ b/tests/testnotebookdnd.c
@@ -90,21 +90,6 @@ on_page_reordered (GtkNotebook *notebook, GtkWidget *child, guint page_num, gpoi
g_print ("page %d reordered\n", page_num);
}
-static void
-on_notebook_drag_begin (GtkWidget *widget,
- GdkDrag *drag,
- gpointer data)
-{
- guint page_num;
-
- page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (widget));
-
- if (page_num > 2)
- gtk_drag_set_icon_name (drag,
- (page_num % 2) ? "help-browser" : "process-stop",
- 0, 0);
-}
-
static gboolean
remove_in_idle (gpointer data)
{
@@ -186,8 +171,6 @@ create_notebook (gchar **labels,
g_signal_connect (GTK_NOTEBOOK (notebook), "page-reordered",
G_CALLBACK (on_page_reordered), NULL);
- g_signal_connect_after (G_OBJECT (notebook), "drag-begin",
- G_CALLBACK (on_notebook_drag_begin), NULL);
return notebook;
}
@@ -233,8 +216,6 @@ create_notebook_non_dragable_content (gchar **labels,
g_signal_connect (GTK_NOTEBOOK (notebook), "page-reordered",
G_CALLBACK (on_page_reordered), NULL);
- g_signal_connect_after (G_OBJECT (notebook), "drag-begin",
- G_CALLBACK (on_notebook_drag_begin), NULL);
return notebook;
}
@@ -271,8 +252,6 @@ create_notebook_with_notebooks (gchar **labels,
g_signal_connect (GTK_NOTEBOOK (notebook), "page-reordered",
G_CALLBACK (on_page_reordered), NULL);
- g_signal_connect_after (G_OBJECT (notebook), "drag-begin",
- G_CALLBACK (on_notebook_drag_begin), NULL);
return notebook;
}
diff --git a/tests/testtoolbar.c b/tests/testtoolbar.c
index a26f8a842b..829e0c920b 100644
--- a/tests/testtoolbar.c
+++ b/tests/testtoolbar.c
@@ -389,6 +389,8 @@ main (gint argc, gchar **argv)
GtkWidget *hbox, *hbox1, *hbox2, *checkbox, *option_menu, *menu;
gint i;
GdkContentFormats *targets;
+ GdkContentProvider *content;
+ GtkDragSource *source;
static const gchar *toolbar_styles[] = { "icons", "text", "both (vertical)",
"both (horizontal)" };
GtkToolItem *item;
@@ -616,9 +618,11 @@ main (gint argc, gchar **argv)
gtk_container_add (GTK_CONTAINER (hbox), checkbox);
targets = gdk_content_formats_new (target_table, G_N_ELEMENTS (target_table));
- gtk_drag_source_set (button, GDK_BUTTON1_MASK,
- targets,
- GDK_ACTION_MOVE);
+ content = gdk_content_provider_new_for_bytes (target_table[0], g_bytes_new ("", 1));
+ source = gtk_drag_source_new (content, GDK_ACTION_MOVE);
+ g_object_unref (content);
+ gtk_drag_source_attach (source, button, GDK_BUTTON1_MASK);
+ g_object_unref (source);
gtk_drag_dest_set (toolbar, GTK_DEST_DEFAULT_DROP,
targets,
GDK_ACTION_MOVE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]