gtk-demo: Fix the dnd demo drop highlight
authorMatthias Clasen <mclasen@redhat.com>
Fri, 22 May 2020 22:52:56 +0000 (18:52 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 22 May 2020 22:52:56 +0000 (18:52 -0400)
We want the drop highlight to be around the label,
not around the item containing it, so move the drop
target gesture to the right widget.

demos/gtk-demo/dnd.c

index b148b39d0ba9b72903ee15d2cefa99660af34041..c7db016b84d737da847cb14c565f1a20c1a29835 100644 (file)
@@ -62,7 +62,8 @@ item_drag_drop (GtkDropTarget *dest,
                 double         x,
                 double         y)
 {
-  CanvasItem *item = CANVAS_ITEM (gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (dest)));
+  GtkWidget *label = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (dest));
+  CanvasItem *item = CANVAS_ITEM (gtk_widget_get_parent (gtk_widget_get_parent (label)));
 
   set_color (item, g_value_get_boxed (value));
 
@@ -155,7 +156,7 @@ canvas_item_init (CanvasItem *item)
 
   dest = gtk_drop_target_new (GDK_TYPE_RGBA, GDK_ACTION_COPY);
   g_signal_connect (dest, "drop", G_CALLBACK (item_drag_drop), NULL);
-  gtk_widget_add_controller (GTK_WIDGET (item), GTK_EVENT_CONTROLLER (dest));
+  gtk_widget_add_controller (GTK_WIDGET (item->label), GTK_EVENT_CONTROLLER (dest));
 
   gesture = gtk_gesture_rotate_new ();
   g_signal_connect (gesture, "angle-changed", G_CALLBACK (angle_changed), NULL);