[gimp/metadata-browser] app: improve ignoring other buttons while one	down
- From: Roman Joost <romanofski src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gimp/metadata-browser] app: improve ignoring other buttons while one	down
- Date: Wed, 12 Sep 2012 22:25:06 +0000 (UTC)
commit d3d8f162de2cd5f05a88c5c1bed0c429a3530d85
Author: Alexia Death <alexiadeath gmail com>
Date:   Fri Dec 9 23:26:22 2011 +0200
    app: improve ignoring other buttons while one down
 app/display/gimpdisplayshell-tool-events.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-tool-events.c b/app/display/gimpdisplayshell-tool-events.c
index 32c9656..c127e3a 100644
--- a/app/display/gimpdisplayshell-tool-events.c
+++ b/app/display/gimpdisplayshell-tool-events.c
@@ -447,11 +447,19 @@ gimp_display_shell_canvas_tool_events (GtkWidget        *canvas,
         GimpTool       *active_tool;
 
         /*  ignore new mouse events  */
-        if (gimp->busy || shell->scrolling)
+        if (gimp->busy || shell->scrolling || shell->pointer_grabbed)
           return TRUE;
 
+        state |= gimp_display_shell_button_to_state (bevent->button);
+
         /* ignore new buttons while another button is down */
-        if (state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK))
+        if ((state & (GDK_BUTTON1_MASK)) && (state & (GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)))
+          return TRUE;
+
+        if ((state & (GDK_BUTTON2_MASK)) && (state & (GDK_BUTTON1_MASK | GDK_BUTTON3_MASK)))
+          return TRUE;
+
+        if ((state & (GDK_BUTTON3_MASK)) && (state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK)))
           return TRUE;
 
         /*  focus the widget if it isn't; if the toplevel window
@@ -475,8 +483,6 @@ gimp_display_shell_canvas_tool_events (GtkWidget        *canvas,
 
         active_tool = tool_manager_get_active (gimp);
 
-        state |= gimp_display_shell_button_to_state (bevent->button);
-
         if (gdk_event_triggers_context_menu (event))
           {
             GimpUIManager *ui_manager;
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]