emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/w32fns.c


From: Jason Rumney
Subject: [Emacs-diffs] Changes to emacs/src/w32fns.c
Date: Sun, 13 Jan 2002 07:14:56 -0500

Index: emacs/src/w32fns.c
diff -c emacs/src/w32fns.c:1.146 emacs/src/w32fns.c:1.147
*** emacs/src/w32fns.c:1.146    Fri Jan  4 19:05:14 2002
--- emacs/src/w32fns.c  Sun Jan 13 07:14:56 2002
***************
*** 142,147 ****
--- 142,150 ----
     events that are passed on to the event loop. */
  Lisp_Object Vw32_mouse_move_interval;
  
+ /* Flag to indicate if XBUTTON events should be passed on to Windows.  */
+ int w32_pass_extra_mouse_buttons_to_system;
+ 
  /* The name we're using in resource queries.  */
  Lisp_Object Vx_resource_name;
  
***************
*** 4570,4575 ****
--- 4573,4583 ----
        }
        return 0;
  
+     case WM_XBUTTONDOWN:
+     case WM_XBUTTONUP:
+       if (w32_pass_extra_mouse_buttons_to_system)
+       goto dflt;
+       /* else fall through and process them.  */
      case WM_MBUTTONDOWN:
      case WM_MBUTTONUP:
      handle_plain_button:
***************
*** 4577,4583 ****
        BOOL up;
        int button;
  
!       if (parse_button (msg, &button, &up))
          {
            if (up) ReleaseCapture ();
            else SetCapture (hwnd);
--- 4585,4591 ----
        BOOL up;
        int button;
  
!       if (parse_button (msg, HIWORD (wParam), &button, &up))
          {
            if (up) ReleaseCapture ();
            else SetCapture (hwnd);
***************
*** 4592,4598 ****
        
        wmsg.dwModifiers = w32_get_modifiers ();
        my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
!       return 0;
  
      case WM_MOUSEMOVE:
        /* If the mouse has just moved into the frame, start tracking
--- 4600,4609 ----
        
        wmsg.dwModifiers = w32_get_modifiers ();
        my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
! 
!       /* Need to return true for XBUTTON messages, false for others,
!          to indicate that we processed the message.  */
!       return (msg == WM_XBUTTONDOWN || msg == WM_XBUTTONUP);
  
      case WM_MOUSEMOVE:
        /* If the mouse has just moved into the frame, start tracking
***************
*** 14506,14511 ****
--- 14517,14532 ----
  successive mouse move (or scroll bar drag) events before they are
  reported as lisp events.  */);
    XSETINT (Vw32_mouse_move_interval, 0);
+ 
+   DEFVAR_BOOL ("w32-pass-extra-mouse-buttons-to-system",
+              &w32_pass_extra_mouse_buttons_to_system,
+              doc: /* Non-nil if the fourth and fifth mouse buttons are passed 
to Windows.
+ Recent versions of Windows support mice with up to five buttons.
+ Since most applications don't support these extra buttons, most mouse
+ drivers will allow you to map them to functions at the system level.
+ If this variable is non-nil, Emacs will pass them on, allowing the
+ system to handle them.  */);
+   w32_pass_extra_mouse_buttons_to_system = 0;
  
    init_x_parm_symbols ();
  



reply via email to

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