diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-11-14 10:48:04 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-11-14 10:52:34 +0100 |
commit | 5b4ac5456eb18405140033668e19e24f91f36543 (patch) | |
tree | f9e721d06e2839bc2a169a0f169a6da4e111c15e | |
parent | 20918dbe8e691f73d48f0a543abf8ff217498387 (diff) | |
download | gtk+-5b4ac5456eb18405140033668e19e24f91f36543.tar.gz |
gtk/main: Reset active state on grab broken only if implicit
An implicit grab means some button is down, reset the active state
only in that case when we get a grab broken event.
Avoids active state accounting warnings when we do get active grabs
broken (e.g. after selecting a menu option).
-rw-r--r-- | gtk/gtkmain.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 72941e8620..6f7ca2337c 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1506,10 +1506,13 @@ handle_pointing_event (GdkEvent *event) case GDK_TOUCHPAD_SWIPE: break; case GDK_GRAB_BROKEN: - target = gtk_window_lookup_effective_pointer_focus_widget (toplevel, - device, - sequence); - set_widget_active_state (target, TRUE); + if (gdk_grab_broken_event_get_implicit (event)) + { + target = gtk_window_lookup_effective_pointer_focus_widget (toplevel, + device, + sequence); + set_widget_active_state (target, TRUE); + } break; default: g_assert_not_reached (); |