Bug 791689 - On-Canvas GUI broken with extended input device

Improve the disabling/enabling of extended input events for the
canvas during enter/leave-notify events, in particular, so that
enter-notify events that are a result of pointer ungrabbing don't
erroneously reeanble extended input events.
This commit is contained in:
Ell 2018-01-04 06:07:44 -05:00
parent fa18044392
commit d3b45f1875
1 changed files with 7 additions and 2 deletions

View File

@ -583,7 +583,9 @@ gimp_display_shell_canvas_tool_events_internal (GtkWidget *canvas,
{
GdkEventCrossing *cevent = (GdkEventCrossing *) event;
if (shell->inferior_ignore_mode)
if (shell->inferior_ignore_mode &&
cevent->subwindow == NULL &&
cevent->mode == GDK_CROSSING_NORMAL)
{
shell->inferior_ignore_mode = FALSE;
gtk_widget_set_extension_events (shell->canvas,
@ -611,7 +613,10 @@ gimp_display_shell_canvas_tool_events_internal (GtkWidget *canvas,
{
GdkEventCrossing *cevent = (GdkEventCrossing *) event;
if (cevent->detail == GDK_NOTIFY_INFERIOR)
if (! shell->inferior_ignore_mode &&
cevent->subwindow == NULL &&
cevent->mode == GDK_CROSSING_NORMAL &&
cevent->detail == GDK_NOTIFY_INFERIOR)
{
shell->inferior_ignore_mode = TRUE;
gtk_widget_set_extension_events (shell->canvas,