summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte.benjamin@googlemail.com>2022-09-27 02:07:21 +0000
committerBenjamin Otte <otte.benjamin@googlemail.com>2022-09-27 02:07:21 +0000
commit67049c32610470703cd8d099e4dce337f0105d5e (patch)
tree45673e738edf8a9e56b6c92f9d180608fc0662d2
parent0a67ac6d4769ed62be54e9acd9d58449f0425bd3 (diff)
parentc98cea3dbbdb6b3c37a4a04ae0881e6e0fc76132 (diff)
downloadgtk+-67049c32610470703cd8d099e4dce337f0105d5e.tar.gz
Merge branch 'wip/otte/for-main' into 'main'
drop target: Warn about broken signal handler returns See merge request GNOME/gtk!5060
-rw-r--r--gtk/gtkdroptarget.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gtk/gtkdroptarget.c b/gtk/gtkdroptarget.c
index 31ca55f950..d3d834d70e 100644
--- a/gtk/gtkdroptarget.c
+++ b/gtk/gtkdroptarget.c
@@ -430,6 +430,12 @@ gtk_drop_target_handle_event (GtkEventController *controller,
graphene_point_init (&self->coords, x, y);
g_signal_emit (self, signals[MOTION], 0, x, y, &preferred);
+ if (!gdk_drag_action_is_unique (preferred))
+ {
+ g_critical ("Handler for GtkDropTarget::motion on %s %p did not return a unique preferred action",
+ G_OBJECT_TYPE_NAME (widget), widget);
+ preferred = make_action_unique (preferred);
+ }
if (preferred &&
gtk_drop_status (self->drop, self->actions, preferred))
{
@@ -497,6 +503,12 @@ gtk_drop_target_handle_crossing (GtkEventController *controller,
gtk_drop_target_start_drop (self, crossing->drop);
g_signal_emit (self, signals[ENTER], 0, x, y, &preferred);
+ if (!gdk_drag_action_is_unique (preferred))
+ {
+ g_critical ("Handler for GtkDropTarget::enter on %s %p did not return a unique preferred action",
+ G_OBJECT_TYPE_NAME (widget), widget);
+ preferred = make_action_unique (preferred);
+ }
if (preferred &&
gtk_drop_status (self->drop, self->actions, preferred))
{