[gtk+/gtk-2-24] W32: Support horizontal mouse wheel scrolling



commit 92fb170917468b4e8946e3f0b94c5a3eeb0b33d9
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date:   Thu Apr 16 23:11:14 2015 +0000

    W32: Support horizontal mouse wheel scrolling
    
    https://bugzilla.gnome.org/show_bug.cgi?id=748014
    (cherry picked from commit c0e0a1508be3ccf349717497af2e8a4d77027649)

 gdk/win32/gdkevents-win32.c  |   10 ++++++++--
 gdk/win32/gdkmain-win32.c    |    1 +
 gdk/win32/gdkprivate-win32.h |    3 +++
 3 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index c853e1e..d654b92 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -2663,6 +2663,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
@@ -2713,8 +2714,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 dc139be..46d2774 100644
--- a/gdk/win32/gdkmain-win32.c
+++ b/gdk/win32/gdkmain-win32.c
@@ -980,6 +980,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 7899533..f28ae8a 100644
--- a/gdk/win32/gdkprivate-win32.h
+++ b/gdk/win32/gdkprivate-win32.h
@@ -92,6 +92,9 @@
 #ifndef WM_APPCOMMAND
 #define WM_APPCOMMAND 0x319
 #endif
+#ifndef WM_MOUSEHWHEEL
+#define WM_MOUSEHWHEEL 0x20E
+#endif
 
 #ifndef CF_DIBV5
 #define CF_DIBV5 17


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