[gtk+] GtkButton: Don't suppress unhandled mouse events



commit 7d54fc14bffb01822003956f9653604c1b531759
Author: Bastien Nocera <hadess hadess net>
Date:   Tue Mar 26 14:22:10 2013 +0100

    GtkButton: Don't suppress unhandled mouse events
    
    Mouse events that we do not handle should bubble up to the parent
    widget, so they can be handled there, instead of disappearing inside
    the button. Also use GDK_EVENT_{STOP,PROPAGATE} to make return
    values clearer.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=696640

 gtk/gtkbutton.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index 9db30cd..7f38b49 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -1818,10 +1818,13 @@ gtk_button_button_press (GtkWidget      *widget,
        gtk_widget_grab_focus (widget);
 
       if (event->button == GDK_BUTTON_PRIMARY)
-        g_signal_emit (button, button_signals[PRESSED], 0);
+        {
+          g_signal_emit (button, button_signals[PRESSED], 0);
+          return GDK_EVENT_STOP;
+        }
     }
 
-  return TRUE;
+  return GDK_EVENT_PROPAGATE;
 }
 
 static gboolean
@@ -1834,9 +1837,10 @@ gtk_button_button_release (GtkWidget      *widget,
     {
       button = GTK_BUTTON (widget);
       g_signal_emit (button, button_signals[RELEASED], 0);
+      return GDK_EVENT_STOP;
     }
 
-  return TRUE;
+  return GDK_EVENT_PROPAGATE;
 }
 
 static gboolean
@@ -1852,13 +1856,15 @@ gtk_button_touch (GtkWidget     *widget,
         gtk_widget_grab_focus (widget);
 
       g_signal_emit (button, button_signals[PRESSED], 0);
+      return GDK_EVENT_STOP;
     }
   else if (event->type == GDK_TOUCH_END)
     {
       g_signal_emit (button, button_signals[RELEASED], 0);
+      return GDK_EVENT_STOP;
     }
 
-  return TRUE;
+  return GDK_EVENT_PROPAGATE;
 }
 
 static gboolean


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