summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorРуслан Ижбулатов <lrn1986@gmail.com>2015-04-16 23:11:14 +0000
committerРуслан Ижбулатов <lrn1986@gmail.com>2015-04-17 04:38:34 +0000
commitc0e0a1508be3ccf349717497af2e8a4d77027649 (patch)
tree14550e6b6f27d1de192dc5e2ee45868690b60297 /gdk
parentbbac0eb3b938769d450310022ab7d5e8109525e4 (diff)
downloadgtk+-c0e0a1508be3ccf349717497af2e8a4d77027649.tar.gz
W32: Support horizontal mouse wheel scrolling
https://bugzilla.gnome.org/show_bug.cgi?id=748014
Diffstat (limited to 'gdk')
-rw-r--r--gdk/win32/gdkevents-win32.c10
-rw-r--r--gdk/win32/gdkmain-win32.c1
-rw-r--r--gdk/win32/gdkprivate-win32.h3
3 files changed, 12 insertions, 2 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index c55cee049e..7ff7c08232 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -2450,6 +2450,7 @@ gdk_event_translate (MSG *msg,
break;
case WM_MOUSEWHEEL:
+ case WM_MOUSEHWHEEL:
GDK_NOTE (EVENTS, g_print (" %d", (short) HIWORD (msg->wParam)));
/* WM_MOUSEWHEEL is delivered to the focus window. Work around
@@ -2500,8 +2501,13 @@ gdk_event_translate (MSG *msg,
event = gdk_event_new (GDK_SCROLL);
event->scroll.window = window;
- event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
- GDK_SCROLL_UP : GDK_SCROLL_DOWN;
+
+ if (msg->message == WM_MOUSEWHEEL)
+ event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
+ GDK_SCROLL_UP : GDK_SCROLL_DOWN;
+ else if (msg->message == WM_MOUSEHWHEEL)
+ event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
+ GDK_SCROLL_RIGHT : GDK_SCROLL_LEFT;
event->scroll.time = _gdk_win32_get_next_tick (msg->time);
event->scroll.x = (gint16) point.x;
event->scroll.y = (gint16) point.y;
diff --git a/gdk/win32/gdkmain-win32.c b/gdk/win32/gdkmain-win32.c
index f12c16673b..ee28ba605a 100644
--- a/gdk/win32/gdkmain-win32.c
+++ b/gdk/win32/gdkmain-win32.c
@@ -759,6 +759,7 @@ _gdk_win32_message_to_string (UINT msg)
CASE (WM_MBUTTONUP);
CASE (WM_MBUTTONDBLCLK);
CASE (WM_MOUSEWHEEL);
+ CASE (WM_MOUSEHWHEEL);
CASE (WM_XBUTTONDOWN);
CASE (WM_XBUTTONUP);
CASE (WM_XBUTTONDBLCLK);
diff --git a/gdk/win32/gdkprivate-win32.h b/gdk/win32/gdkprivate-win32.h
index dbb9a7900b..a14d8f5a37 100644
--- a/gdk/win32/gdkprivate-win32.h
+++ b/gdk/win32/gdkprivate-win32.h
@@ -90,6 +90,9 @@
#ifndef WM_APPCOMMAND
#define WM_APPCOMMAND 0x319
#endif
+#ifndef WM_MOUSEHWHEEL
+#define WM_MOUSEHWHEEL 0x20E
+#endif
#ifndef CF_DIBV5
#define CF_DIBV5 17