[gimp] Bug 791689 - On-Canvas GUI broken with extended input device



commit d3b45f1875d9665573f8a027aee7c208ee97ef64
Author: Ell <ell_se yahoo com>
Date:   Thu Jan 4 06:07:44 2018 -0500

    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.

 app/display/gimpdisplayshell-tool-events.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-tool-events.c b/app/display/gimpdisplayshell-tool-events.c
index 12f93da..633d69b 100644
--- a/app/display/gimpdisplayshell-tool-events.c
+++ b/app/display/gimpdisplayshell-tool-events.c
@@ -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,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]