texinfo-commits
[Top][All Lists]
Advanced

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

[6205] Support mouse scrolling on MS-Wndows.


From: Eli Zaretskii
Subject: [6205] Support mouse scrolling on MS-Wndows.
Date: Mon, 06 Apr 2015 14:57:06 +0000

Revision: 6205
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6205
Author:   eliz
Date:     2015-04-06 14:57:05 +0000 (Mon, 06 Apr 2015)
Log Message:
-----------
Support mouse scrolling on MS-Wndows.

 info/pcterm.c (w32_info_prep): Enable mouse input.
 (w32_kbd_read): Support mouse wheel events by scrolling display
 like mouse_event_handler does.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/info/pcterm.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2015-04-06 13:47:43 UTC (rev 6204)
+++ trunk/ChangeLog     2015-04-06 14:57:05 UTC (rev 6205)
@@ -1,3 +1,9 @@
+2015-04-06  Eli Zaretskii  <address@hidden>
+
+       * info/pcterm.c (w32_info_prep): Enable mouse input.
+       (w32_kbd_read): Support mouse wheel events by scrolling display
+       like mouse_event_handler does.
+
 2015-04-06  Gavin Smith  <address@hidden>
 
        * info/info.c (add_initial_nodes) <--node>: Look through node 

Modified: trunk/info/pcterm.c
===================================================================
--- trunk/info/pcterm.c 2015-04-06 13:47:43 UTC (rev 6204)
+++ trunk/info/pcterm.c 2015-04-06 14:57:05 UTC (rev 6205)
@@ -111,7 +111,7 @@
       SetConsoleActiveScreenBuffer (hinfo);
       current_attr = norm_attr;
       hscreen = hinfo;
-      SetConsoleMode (hstdin, ENABLE_WINDOW_INPUT);
+      SetConsoleMode (hstdin, ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT);
       GetConsoleMode (hscreen, &old_outpmode);
       SetConsoleMode (hscreen, old_outpmode & ~ENABLE_WRAP_AT_EOL_OUTPUT);
     }
@@ -641,6 +641,28 @@
                    redisplay_after_signal ();
                  }
                  break;
+               case MOUSE_EVENT:
+                 {
+                   /* Only vertical wheel support for now.  */
+                   int wheeled =
+                     (inrec.Event.MouseEvent.dwEventFlags & MOUSE_WHEELED) != 
0;
+                   if (wheeled && mouse_protocol == MP_NORMAL_TRACKING)
+                     {
+                       extern void info_up_line (WINDOW *, int count);
+                       extern void info_down_line (WINDOW *, int count);
+                       extern WINDOW *active_window;
+
+                       int hiword =
+                         HIWORD (inrec.Event.MouseEvent.dwButtonState);
+
+                       if ((hiword & 0xFF00) == 0)
+                         info_up_line (active_window, 3);
+                       else
+                         info_down_line (active_window, 3);
+                       display_update_display ();
+                     }
+                 }
+                 break;
                default:
                  break;
              }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]