[gtk+/gtk-3-8] GtkSwitch: Don't handle events from extra mouse buttons
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-8] GtkSwitch: Don't handle events from extra mouse buttons
- Date: Sat, 18 May 2013 12:51:18 +0000 (UTC)
commit eb899ebbf84cfb127079c2930f2dbdc7ffe17a1d
Author: Bastien Nocera <hadess hadess net>
Date: Thu May 16 14:27:39 2013 +0200
GtkSwitch: Don't handle events from extra mouse buttons
Also use GDK_EVENT_{STOP,PROPAGATE} to make return
values clearer.
https://bugzilla.gnome.org/show_bug.cgi?id=696640
gtk/gtkswitch.c | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c
index dfcfedc..141d092 100644
--- a/gtk/gtkswitch.c
+++ b/gtk/gtkswitch.c
@@ -109,6 +109,10 @@ gtk_switch_button_press (GtkWidget *widget,
GtkSwitchPrivate *priv = GTK_SWITCH (widget)->priv;
GtkAllocation allocation;
+ /* Don't handle extra mouse buttons events, let them bubble up */
+ if (event->button > 5)
+ return GDK_EVENT_PROPAGATE;
+
gtk_widget_get_allocation (widget, &allocation);
if (priv->is_active)
@@ -119,7 +123,7 @@ gtk_switch_button_press (GtkWidget *widget,
if (event->x <= allocation.width / 2)
{
priv->in_press = TRUE;
- return TRUE;
+ return GDK_EVENT_STOP;
}
priv->offset = event->x - allocation.width / 2;
@@ -132,7 +136,7 @@ gtk_switch_button_press (GtkWidget *widget,
if (event->x >= allocation.width / 2)
{
priv->in_press = TRUE;
- return TRUE;
+ return GDK_EVENT_STOP;
}
priv->offset = event->x;
@@ -144,7 +148,7 @@ gtk_switch_button_press (GtkWidget *widget,
"gtk-dnd-drag-threshold", &priv->drag_threshold,
NULL);
- return TRUE;
+ return GDK_EVENT_STOP;
}
static gboolean
@@ -155,10 +159,10 @@ gtk_switch_motion (GtkWidget *widget,
/* if this is a direct toggle we don't handle motion */
if (priv->in_press)
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
if (ABS (event->x - priv->drag_start) < priv->drag_threshold)
- return TRUE;
+ return GDK_EVENT_STOP;
if (event->state & GDK_BUTTON1_MASK)
{
@@ -199,10 +203,10 @@ gtk_switch_motion (GtkWidget *widget,
/* we need to redraw the handle */
gtk_widget_queue_draw (widget);
- return TRUE;
+ return GDK_EVENT_STOP;
}
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
}
static gboolean
@@ -212,6 +216,10 @@ gtk_switch_button_release (GtkWidget *widget,
GtkSwitchPrivate *priv = GTK_SWITCH (widget)->priv;
GtkAllocation allocation;
+ /* Don't handle extra mouse buttons events, let them bubble up */
+ if (event->button > 5)
+ return GDK_EVENT_PROPAGATE;
+
gtk_widget_get_allocation (widget, &allocation);
/* dragged toggles have a "soft" grab, so we don't care whether we
@@ -219,7 +227,7 @@ gtk_switch_button_release (GtkWidget *widget,
* for direct toggles, instead
*/
if (!priv->is_dragging && !priv->in_switch)
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
/* direct toggle */
if (priv->in_press)
@@ -227,7 +235,7 @@ gtk_switch_button_release (GtkWidget *widget,
priv->in_press = FALSE;
gtk_switch_set_active (GTK_SWITCH (widget), !priv->is_active);
- return TRUE;
+ return GDK_EVENT_STOP;
}
/* toggle the switch if the handle was clicked but a drag had not been
@@ -236,7 +244,7 @@ gtk_switch_button_release (GtkWidget *widget,
{
gtk_switch_set_active (GTK_SWITCH (widget), !priv->is_active);
- return TRUE;
+ return GDK_EVENT_STOP;
}
/* dragged toggle */
@@ -260,10 +268,10 @@ gtk_switch_button_release (GtkWidget *widget,
gtk_widget_queue_draw (widget);
- return TRUE;
+ return GDK_EVENT_STOP;
}
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]