summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2001-06-04 23:46:14 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-06-04 23:46:14 +0000
commit5d1c5446c57c26a5e4001fcba45e9399330dd8cc (patch)
tree1a23465c79af04500f481b0f9655d81b27c69e62 /gdk
parent1b3c9214371d89a4872574d700b86cb71d6eee56 (diff)
downloadgtk+-5d1c5446c57c26a5e4001fcba45e9399330dd8cc.tar.gz
support button 6 and 7 for scroll left/right, from Thomas Broyer
2001-06-04 Havoc Pennington <hp@redhat.com> * gdk/x11/gdkevents-x11.c (gdk_event_translate): support button 6 and 7 for scroll left/right, from Thomas Broyer
Diffstat (limited to 'gdk')
-rw-r--r--gdk/x11/gdkevents-x11.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c
index 305f7b6157..8042f49195 100644
--- a/gdk/x11/gdkevents-x11.c
+++ b/gdk/x11/gdkevents-x11.c
@@ -650,11 +650,23 @@ gdk_event_translate (GdkEvent *event,
/* If we get a ButtonPress event where the button is 4 or 5,
it's a Scroll event */
- if (xevent->xbutton.button == 4 || xevent->xbutton.button == 5)
- {
+ switch (xevent->xbutton.button)
+ {
+ case 4: /* up */
+ case 5: /* down */
+ case 6: /* left */
+ case 7: /* right */
event->scroll.type = GDK_SCROLL;
- event->scroll.direction = (xevent->xbutton.button == 4) ?
- GDK_SCROLL_UP : GDK_SCROLL_DOWN;
+
+ if (xevent->xbutton.button == 4)
+ event->scroll.direction = GDK_SCROLL_UP;
+ else if (xevent->xbutton.button == 5)
+ event->scroll.direction = GDK_SCROLL_DOWN;
+ else if (xevent->xbutton.button == 6)
+ event->scroll.direction = GDK_SCROLL_LEFT;
+ else
+ event->scroll.direction = GDK_SCROLL_RIGHT;
+
event->scroll.window = window;
event->scroll.time = xevent->xbutton.x;
event->scroll.x = xevent->xbutton.x + xoffset;
@@ -663,9 +675,9 @@ gdk_event_translate (GdkEvent *event,
event->scroll.y_root = (gfloat)xevent->xbutton.y_root;
event->scroll.state = (GdkModifierType) xevent->xbutton.state;
event->scroll.device = gdk_core_pointer;
- }
- else
- {
+ break;
+
+ default:
event->button.type = GDK_BUTTON_PRESS;
event->button.window = window;
event->button.time = xevent->xbutton.time;
@@ -679,6 +691,7 @@ gdk_event_translate (GdkEvent *event,
event->button.device = gdk_core_pointer;
gdk_event_button_generate (event);
+ break;
}
break;