Replace gtk_drop_target_attach/detach
authorMatthias Clasen <mclasen@redhat.com>
Mon, 6 Jan 2020 05:12:21 +0000 (00:12 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 8 Jan 2020 23:48:21 +0000 (18:48 -0500)
Since drop targets are now just event controller,
gtk_widget_add/remove_controller works just fine
for them.

23 files changed:
demos/gtk-demo/clipboard.c
gtk/gtkcalendar.c
gtk/gtkcolorbutton.c
gtk/gtkcolorswatch.c
gtk/gtkdragdest.c
gtk/gtkdragdest.h
gtk/gtkexpander.c
gtk/gtkfilechooserbutton.c
gtk/gtkfilechooserwidget.c
gtk/gtkiconview.c
gtk/gtknotebook.c
gtk/gtkplacessidebar.c
gtk/gtkstackswitcher.c
gtk/gtktext.c
gtk/gtktextview.c
gtk/gtktreeview.c
gtk/gtkwindow.c
tests/testdnd.c
tests/testdnd2.c
tests/testlist3.c
tests/testnotebookdnd.c
tests/testtoolbar.c
tests/testtreednd.c

index e40b89ac4c942a8eeb0d628eb66ccb19ac4874b9..b484f5eec7d19dd69f546f616b4ae9057ecea3d4 100644 (file)
@@ -342,7 +342,7 @@ do_clipboard (GtkWidget *do_widget)
       dest = gtk_drop_target_new (formats, GDK_ACTION_COPY);
       gdk_content_formats_unref (formats);
       g_signal_connect (dest, "drag-drop", G_CALLBACK (drag_drop), image);
-      gtk_drop_target_attach (dest, image);
+      gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (dest));
 
       /* context menu on image */
       gesture = gtk_gesture_click_new ();
@@ -375,7 +375,7 @@ do_clipboard (GtkWidget *do_widget)
       dest = gtk_drop_target_new (formats, GDK_ACTION_COPY);
       gdk_content_formats_unref (formats);
       g_signal_connect (dest, "drag-drop", G_CALLBACK (drag_drop), image);
-      gtk_drop_target_attach (dest, image);
+      gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (dest));
 
       /* context menu on image */
       gesture = gtk_gesture_click_new ();
index b9b7d1d0624a7835478673c3ddc86946d0ad67d1..7e3b8b49d8dfbd150abaf6b896868acfe880b0f8 100644 (file)
@@ -791,7 +791,7 @@ gtk_calendar_init (GtkCalendar *calendar)
   g_signal_connect (dest, "drag-leave", G_CALLBACK (gtk_calendar_drag_leave), calendar);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (gtk_calendar_drag_drop), calendar);
 
-  gtk_drop_target_attach (dest, widget);
+  gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (dest));
   
   priv->year_before = 0;
 
index 20b04714928748ccc9b8607a330ffbf0454521f5..581da04d59fb736681e3f11d440f0aad428bc60f 100644 (file)
@@ -46,6 +46,7 @@
 #include "gtkstylecontext.h"
 #include "gtkdragsource.h"
 #include "gtkdragdest.h"
+#include "gtkeventcontroller.h"
 
 
 /**
@@ -328,7 +329,7 @@ gtk_color_button_init (GtkColorButton *button)
   targets = gdk_content_formats_new (drop_types, G_N_ELEMENTS (drop_types));
   dest = gtk_drop_target_new (targets, GDK_ACTION_COPY);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (gtk_color_button_drag_drop), button);
-  gtk_drop_target_attach (dest, GTK_WIDGET (button));
+  gtk_widget_add_controller (GTK_WIDGET (button), GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (targets);
 
   content = gdk_content_provider_new_with_callback (GDK_TYPE_RGBA, get_rgba_value, button);
index 4f22fbd39b5694d077f4e51589859f290243f42e..188f08d8d11b5e576ef2ad354c676b41a94afa91 100644 (file)
@@ -473,7 +473,6 @@ swatch_finalize (GObject *object)
 
   g_free (priv->icon);
   gtk_widget_unparent (priv->overlay_widget);
-  g_clear_pointer (&priv->dest, gtk_drop_target_detach);
  
   G_OBJECT_CLASS (gtk_color_swatch_parent_class)->finalize (object);
 }
@@ -678,12 +677,13 @@ gtk_color_swatch_set_can_drop (GtkColorSwatch *swatch,
       targets = gdk_content_formats_new (dnd_targets, G_N_ELEMENTS (dnd_targets));
       priv->dest = gtk_drop_target_new (targets, GDK_ACTION_COPY);
       g_signal_connect (priv->dest, "drag-drop", G_CALLBACK (swatch_drag_drop), swatch);
-      gtk_drop_target_attach (priv->dest, GTK_WIDGET (swatch)); 
+      gtk_widget_add_controller (GTK_WIDGET (swatch), GTK_EVENT_CONTROLLER (priv->dest));
       gdk_content_formats_unref (targets);
     }
   if (!can_drop && priv->dest)
     {
-      g_clear_pointer (&priv->dest, gtk_drop_target_detach);
+      gtk_widget_remove_controller (GTK_WIDGET (swatch), GTK_EVENT_CONTROLLER (priv->dest));
+      priv->dest = NULL;
     }
 
   g_object_notify (G_OBJECT (swatch), "can-drop");
index 0dc2c27761620d900e3ade07a7e9ad1386c6db90..9c2e802076ea2899d0e28c61306e443ad5de43ee 100644 (file)
@@ -46,7 +46,7 @@
  *
  * To use a GtkDropTarget to receive drops on a widget, you create
  * a GtkDropTarget object, connect to its signals, and then attach
- * it to the widget with gtk_drop_target_attach().
+ * it to the widget with gtk_widget_add_controller().
  */
 
 struct _GtkDropTarget
@@ -445,44 +445,6 @@ gtk_drop_target_get (GtkWidget *widget)
   return g_object_get_data (G_OBJECT (widget), I_("gtk-drag-dest"));
 }
 
-/**
- * gtk_drop_target_attach:
- * @dest: (transfer full): a #GtkDropTarget
- * @widget the widget to attach @dest to
- *
- * Attaches the @dest to widget and makes it accept drops
- * on the widgets.
- *
- * To undo the effect of this call, use gtk_drop_target_detach().
- */
-void
-gtk_drop_target_attach (GtkDropTarget *dest,
-                        GtkWidget     *widget)
-{
-  g_return_if_fail (GTK_IS_DROP_TARGET (dest));
-  g_return_if_fail (GTK_IS_WIDGET (widget));
-
-  gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (dest), GTK_PHASE_BUBBLE);
-  gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (dest));
-}
-
-/**
- * gtk_drop_target_detach:
- * @dest: a #GtkDropTarget
- *
- * Undoes the effect of a prior gtk_drop_target_attach() call.
- */
-void
-gtk_drop_target_detach (GtkDropTarget *dest)
-{
-  GtkWidget *widget;
-
-  g_return_if_fail (GTK_IS_DROP_TARGET (dest));
-
-  widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (dest));
-  gtk_widget_remove_controller (widget, GTK_EVENT_CONTROLLER (dest));
-}
-
 /**
  * gtk_drop_target_get_target:
  * @dest: a #GtkDropTarget
index 267600b4b569b83722c761a21bd555519a38fdb5..11271c46b4686f00b482ce35443ef935d9e0074a 100644 (file)
@@ -68,12 +68,6 @@ void               gtk_drop_target_set_actions      (GtkDropTarget     *dest,
 GDK_AVAILABLE_IN_ALL
 GdkDragAction      gtk_drop_target_get_actions      (GtkDropTarget     *dest);
 
-GDK_AVAILABLE_IN_ALL
-void               gtk_drop_target_attach           (GtkDropTarget     *dest,
-                                                     GtkWidget         *widget);
-GDK_AVAILABLE_IN_ALL
-void               gtk_drop_target_detach           (GtkDropTarget     *dest);
-
 GDK_AVAILABLE_IN_ALL
 GdkDrop           *gtk_drop_target_get_drop         (GtkDropTarget     *dest);
 
index 5528c8416e271b3c82df53de8b036a70ce5fb438..ac5b6034ab614d7a85fc4f37137551bc505a2d9f 100644 (file)
@@ -379,7 +379,7 @@ gtk_expander_init (GtkExpander *expander)
   gdk_content_formats_unref (formats);
   g_signal_connect (dest, "drag-motion", G_CALLBACK (gtk_expander_drag_motion), expander);
   g_signal_connect (dest, "drag-leave", G_CALLBACK (gtk_expander_drag_leave), expander);
-  gtk_drop_target_attach (dest, GTK_WIDGET (expander));
+  gtk_widget_add_controller (GTK_WIDGET (expander), GTK_EVENT_CONTROLLER (dest));
 
   gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture),
index a80e56f0bc98fb812fd0e5efb8d311410fa7e9e5..f20423198ec1dab1b5a320da4c01d5b4323fa5b4 100644 (file)
@@ -60,6 +60,7 @@
 #include "gtksettings.h"
 #include "gtkstylecontextprivate.h"
 #include "gtkbitmaskprivate.h"
+#include "gtkeventcontroller.h"
 
 /**
  * SECTION:gtkfilechooserbutton
@@ -500,7 +501,7 @@ gtk_file_chooser_button_init (GtkFileChooserButton *button)
   target_list = gtk_content_formats_add_text_targets (target_list);
   dest = gtk_drop_target_new (target_list, GDK_ACTION_COPY);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (gtk_file_chooser_button_drag_drop), button);
-  gtk_drop_target_attach (dest, GTK_WIDGET (button));
+  gtk_widget_add_controller (GTK_WIDGET (button), GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (target_list);
 }
 
index 8635228b014bd1baa101392101034c3bf5e3b087..23f7ed0b9398e28f20ae4880ea607a3dda6ff408 100644 (file)
@@ -8522,7 +8522,7 @@ post_process_ui (GtkFileChooserWidget *impl)
   dest = gtk_drop_target_new (formats, GDK_ACTION_COPY | GDK_ACTION_MOVE);
   g_signal_connect (dest, "drag-motion", G_CALLBACK (file_list_drag_motion_cb), impl);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (file_list_drag_drop_cb), impl);
-  gtk_drop_target_attach (dest, priv->browse_files_tree_view);
+  gtk_widget_add_controller (priv->browse_files_tree_view, GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (formats);
 
   /* File browser treemodel columns are shared between GtkFileChooser implementations,
index d243666376f884d9372d6f41f34e7fc3a265c6b3..a2491bcf06e31b07455261b3ec0cf81316e5ba2c 100644 (file)
@@ -1025,7 +1025,6 @@ gtk_icon_view_dispose (GObject *object)
   g_clear_object (&priv->key_controller);
 
   g_clear_object (&priv->source);
-  g_clear_pointer (&priv->dest, gtk_drop_target_detach);
 
   G_OBJECT_CLASS (gtk_icon_view_parent_class)->dispose (object);
 }
@@ -6499,7 +6498,7 @@ gtk_icon_view_enable_model_drag_dest (GtkIconView       *icon_view,
   g_signal_connect (icon_view->priv->dest, "drag-leave", G_CALLBACK (gtk_icon_view_drag_leave), icon_view);
   g_signal_connect (icon_view->priv->dest, "drag-motion", G_CALLBACK (gtk_icon_view_drag_motion), icon_view);
   g_signal_connect (icon_view->priv->dest, "drag-drop", G_CALLBACK (gtk_icon_view_drag_drop), icon_view);
-  gtk_drop_target_attach (icon_view->priv->dest, GTK_WIDGET (icon_view));
+  gtk_widget_add_controller (GTK_WIDGET (icon_view), GTK_EVENT_CONTROLLER (icon_view->priv->dest));
 
   icon_view->priv->dest_actions = actions;
 
@@ -6545,7 +6544,7 @@ gtk_icon_view_unset_model_drag_dest (GtkIconView *icon_view)
 
   if (icon_view->priv->dest_set)
     {
-      gtk_drop_target_detach (icon_view->priv->dest);
+      gtk_widget_remove_controller (GTK_WIDGET (icon_view), GTK_EVENT_CONTROLLER (icon_view->priv->dest));
       icon_view->priv->dest = NULL;
       icon_view->priv->dest_set = FALSE;
     }
index c1eda8ea3ecee2f92c91ea5a9c5401175acfbb76..5127e7c1776c63b68c7e8ef57f7fbe93fb44ee1b 100644 (file)
@@ -1329,7 +1329,8 @@ gtk_notebook_init (GtkNotebook *notebook)
   g_signal_connect (dest, "drag-motion", G_CALLBACK (gtk_notebook_drag_motion), NULL);
   g_signal_connect (dest, "drag-leave", G_CALLBACK (gtk_notebook_drag_leave), NULL);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (gtk_notebook_drag_drop), NULL);
-  gtk_drop_target_attach (dest, GTK_WIDGET (notebook));
+  gtk_widget_add_controller (GTK_WIDGET (notebook), GTK_EVENT_CONTROLLER (dest));
+
   gdk_content_formats_unref (targets);
 
   priv->header_widget = g_object_new (GTK_TYPE_BOX,
index 3b0f588536cb4f6fedd61c78f90d472212c3cd68..907482748c6eab67c64860e65dc4eba40b23750c 100644 (file)
@@ -4099,7 +4099,7 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar)
   g_signal_connect (dest, "drag-motion", G_CALLBACK (drag_motion_callback), sidebar);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (drag_drop_callback), sidebar);
   g_signal_connect (dest, "drag-leave", G_CALLBACK (drag_leave_callback), sidebar);
-  gtk_drop_target_attach (dest, sidebar->list_box);
+  gtk_widget_add_controller (sidebar->list_box, GTK_EVENT_CONTROLLER (dest));
   sidebar->source_targets = gdk_content_formats_new (dnd_source_targets, G_N_ELEMENTS (dnd_source_targets));
   sidebar->source_targets = gtk_content_formats_add_text_targets (sidebar->source_targets);
 
index b3688ab4d4c6626a4f5e412ccc8386446496f283..02d22dec080c191e9368214572c6cdf825ca54e2 100644 (file)
@@ -120,7 +120,7 @@ gtk_stack_switcher_init (GtkStackSwitcher *switcher)
   gdk_content_formats_unref (formats);
   g_signal_connect (dest, "drag-leave", G_CALLBACK (gtk_stack_switcher_drag_leave), switcher);
   g_signal_connect (dest, "drag-motion", G_CALLBACK (gtk_stack_switcher_drag_motion), switcher);
-  gtk_drop_target_attach (dest, GTK_WIDGET (switcher));
+  gtk_widget_add_controller (GTK_WIDGET (switcher), GTK_EVENT_CONTROLLER (dest));
 }
 
 static void
index 51216d55136d3e244d9f22d2e1a8a54396d883e8..27916ada67c626c85ac75c6d51673b4dcf97422e 100644 (file)
@@ -1732,7 +1732,7 @@ gtk_text_init (GtkText *self)
   g_signal_connect (dest, "drag-leave", G_CALLBACK (gtk_text_drag_leave), self);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (gtk_text_drag_drop), self);
   gdk_content_formats_unref (formats);
-  gtk_drop_target_attach (dest, GTK_WIDGET (self));
+  gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (dest));
 
   /* This object is completely private. No external entity can gain a reference
    * to it; so we create it here and destroy it in finalize().
index 87b6435d0c698f360e338b07b68476fbb08351f9..99f830f7474ca6c26a35a2fc40f261d74f577fe0 100644 (file)
@@ -1635,7 +1635,7 @@ gtk_text_view_init (GtkTextView *text_view)
   g_signal_connect (dest, "drag-leave", G_CALLBACK (gtk_text_view_drag_leave), text_view);
   g_signal_connect (dest, "drag-motion", G_CALLBACK (gtk_text_view_drag_motion), text_view);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (gtk_text_view_drag_drop), text_view);
-  gtk_drop_target_attach (dest, GTK_WIDGET (text_view));
+  gtk_widget_add_controller (GTK_WIDGET (text_view), GTK_EVENT_CONTROLLER (dest));
 
   priv->virtual_cursor_x = -1;
   priv->virtual_cursor_y = -1;
index fd0d50f40f0bbc5bfa68270c72c8a8e77d4e23dc..e319430e034a2209299ae38cc5bf3c0108155400 100644 (file)
@@ -6743,8 +6743,6 @@ static void
 destroy_info (TreeViewDragInfo *di)
 {
   g_clear_object (&di->source);
-  if (di->dest)
-    gtk_drop_target_detach (di->dest);
   g_clear_object (&di->dest);
 
   g_slice_free (TreeViewDragInfo, di);
@@ -6773,6 +6771,11 @@ ensure_info (GtkTreeView *tree_view)
 static void
 remove_info (GtkTreeView *tree_view)
 {
+  TreeViewDragInfo *di;
+
+  di = get_info (tree_view);
+  if (di && di->dest)
+    gtk_widget_remove_controller (GTK_WIDGET (tree_view), GTK_EVENT_CONTROLLER (di->dest));
   g_object_set_data (G_OBJECT (tree_view), I_("gtk-tree-view-drag-info"), NULL);
 }
 
@@ -12968,7 +12971,7 @@ gtk_tree_view_enable_model_drag_dest (GtkTreeView       *tree_view,
   g_signal_connect (di->dest, "drag-leave", G_CALLBACK (gtk_tree_view_drag_leave), tree_view);
   g_signal_connect (di->dest, "drag-motion", G_CALLBACK (gtk_tree_view_drag_motion), tree_view);
   g_signal_connect (di->dest, "drag-drop", G_CALLBACK (gtk_tree_view_drag_drop), tree_view);
-  gtk_drop_target_attach (di->dest, GTK_WIDGET (tree_view));
+  gtk_widget_add_controller (GTK_WIDGET (tree_view), GTK_EVENT_CONTROLLER (di->dest));
   g_object_ref (di->dest);
 
   unset_reorderable (tree_view);
@@ -13029,7 +13032,7 @@ gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view)
     {
       if (di->dest_set)
         {
-          gtk_drop_target_detach (di->dest);
+          gtk_widget_remove_controller (GTK_WIDGET (tree_view), GTK_EVENT_CONTROLLER (di->dest));
           di->dest = NULL;
           di->dest_set = FALSE;
         }
index 0c5a8e3f6a804c09c4a4df87e6580a29caa9778b..c0a5067a52a2e2096ee5b98a4be6151ad48f030a 100644 (file)
@@ -1841,7 +1841,7 @@ gtk_window_init (GtkWindow *window)
   targets = gdk_content_formats_new (dnd_dest_targets, G_N_ELEMENTS (dnd_dest_targets));
   dest = gtk_drop_target_new (targets, GDK_ACTION_MOVE);
   gdk_content_formats_unref (targets);
-  gtk_drop_target_attach (dest, GTK_WIDGET (window));
+  gtk_widget_add_controller (GTK_WIDGET (window), GTK_EVENT_CONTROLLER (dest));
 #endif
 
   seat = gdk_display_get_default_seat (gtk_widget_get_display (widget));
index 9c43601ffed22d40ca1c8d7b9cf1a2fa2626aaa8..4057e772355bce5d692106dea92d52e9260f4b41 100644 (file)
@@ -504,7 +504,7 @@ popup_cb (gpointer data)
                 dest = gtk_drop_target_new (targets, GDK_ACTION_COPY | GDK_ACTION_MOVE);
                g_signal_connect (dest, "drag-motion", G_CALLBACK (popup_motion), NULL);
                g_signal_connect (dest, "drag-leave", G_CALLBACK (popup_leave), NULL);
-                gtk_drop_target_attach (dest, button);
+                gtk_widget_add_controller (button, GTK_EVENT_CONTROLLER (dest));
              }
          gtk_container_add (GTK_CONTAINER (popup_window), grid);
           gdk_content_formats_unref (targets);
@@ -597,7 +597,7 @@ main (int argc, char **argv)
   targets = gdk_content_formats_new (target_table, n_targets - 1); /* no rootwin */
   dest = gtk_drop_target_new (targets, GDK_ACTION_COPY | GDK_ACTION_MOVE);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (label_drag_drop), NULL);
-  gtk_drop_target_attach (dest, label);
+  gtk_widget_add_controller (label, GTK_EVENT_CONTROLLER (dest));
 
   gtk_widget_set_hexpand (label, TRUE);
   gtk_widget_set_vexpand (label, TRUE);
@@ -608,7 +608,7 @@ main (int argc, char **argv)
   dest = gtk_drop_target_new (targets, GDK_ACTION_COPY | GDK_ACTION_MOVE);
   g_signal_connect (dest, "drag-motion", G_CALLBACK (popsite_motion), NULL);
   g_signal_connect (dest, "drag-leave", G_CALLBACK (popsite_leave), NULL);
-  gtk_drop_target_attach (dest, label);
+  gtk_widget_add_controller (label, GTK_EVENT_CONTROLLER (dest));
 
   gtk_widget_set_hexpand (label, TRUE);
   gtk_widget_set_vexpand (label, TRUE);
@@ -622,7 +622,7 @@ main (int argc, char **argv)
   g_signal_connect (dest, "drag-leave", G_CALLBACK (target_drag_leave), pixmap);
   g_signal_connect (dest, "drag-motion", G_CALLBACK (target_drag_motion), pixmap);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (target_drag_drop), pixmap);
-  gtk_drop_target_attach (dest, pixmap);
+  gtk_widget_add_controller (pixmap, GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (targets);
 
   gtk_widget_set_hexpand (pixmap, TRUE);
index 191134602616a66d26e5c6382b5924f6b43a99ee..98c44c8c76db68f1b534274db32cdb2db1c2acbb 100644 (file)
@@ -307,7 +307,7 @@ make_image (const gchar *icon_name, int hotspot)
 
   dest = gtk_drop_target_new (formats, GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_ASK);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (image_drag_drop), image);
-  gtk_drop_target_attach (dest, image);
+  gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (dest));
 
   gdk_content_formats_unref (formats);
 
index b43454ee7682425f7ce412e0840e0e129bd8b515..5795067e93f6dc810d9e493dda2e23a9ff71ddff 100644 (file)
@@ -90,7 +90,7 @@ create_row (const gchar *text)
   targets = gdk_content_formats_new (entries, 1);
   dest = gtk_drop_target_new (targets, GDK_ACTION_MOVE);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (drag_drop), row);
-  gtk_drop_target_attach (dest, row);
+  gtk_widget_add_controller (GTK_WIDGET (row), GTK_EVENT_CONTROLLER (dest));
 
   gdk_content_formats_unref (targets);
 
index 8cea38479344fe4bf2a4c915c14e6992fd28c46a..1f95172137fb217bd1f5d46d36596f7691d6c6ae 100644 (file)
@@ -303,7 +303,7 @@ create_trash_button (void)
   targets = gdk_content_formats_new (button_targets, G_N_ELEMENTS (button_targets));
   dest = gtk_drop_target_new (targets, GDK_ACTION_MOVE);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (on_button_drag_drop), NULL);
-  gtk_drop_target_attach (dest, button);
+  gtk_widget_add_controller (button, GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (targets);
 
   return button;
index 82ee0a4f2b39c7dda95eb240058a51370eaf6494..d585bde96cce24326579a11416e441cefa74489c 100644 (file)
@@ -625,7 +625,7 @@ main (gint argc, gchar **argv)
   g_signal_connect (dest, "drag_motion", G_CALLBACK (toolbar_drag_motion), toolbar);
   g_signal_connect (dest, "drag_leave", G_CALLBACK (toolbar_drag_leave), toolbar);
   g_signal_connect (dest, "drag_drop", G_CALLBACK (toolbar_drag_drop), label);
-  gtk_drop_target_attach (dest, toolbar);
+  gtk_widget_add_controller (toolbar, GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (targets);
 
   gtk_widget_show (window);
index 9b2d44c2528dc498693afb0ac828760cf2bef44c..7de29236bcd67edf90650b12fe2bf9698ee30ef6 100644 (file)
@@ -127,7 +127,7 @@ get_droptarget (void)
   targets = gdk_content_formats_new (entries, G_N_ELEMENTS (entries));
   dest = gtk_drop_target_new (targets, GDK_ACTION_COPY);
   g_signal_connect (dest, "drag-drop", G_CALLBACK (drag_drop), NULL);
-  gtk_drop_target_attach (dest, label);
+  gtk_widget_add_controller (label, GTK_EVENT_CONTROLLER (dest));
   gdk_content_formats_unref (targets);
 
   return label;