]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid hourglass mouse pointer when a tooltip for menu item is shown.
authorEli Zaretskii <eliz@gnu.org>
Fri, 26 Oct 2012 09:46:46 +0000 (11:46 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 26 Oct 2012 09:46:46 +0000 (11:46 +0200)
 src/w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
 mouse movement events if the menu bar is active.  This avoids
 producing a busy "hour-glass" cursor by Windows if the mouse
 pointer is positioned over a tooltip shown for some menu item.

src/ChangeLog
src/w32fns.c

index 835c550b42665fa890babd067514cd44320f4ebc..bf519556334dfa01799a9aa381124d3b0a3ec49f 100644 (file)
@@ -1,3 +1,10 @@
+2012-10-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
+       mouse movement events if the menu bar is active.  This avoids
+       producing a busy "hour-glass" cursor by Windows if the mouse
+       pointer is positioned over a tooltip shown for some menu item.
+
 2012-10-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        Don't assume process IDs fit in int.
index 28e8ea02e053cfeada1d75219c7ead1f8c7d08ef..aa120d59ce510fdcfe19c7c768de52bf3e8ad0d3 100644 (file)
@@ -3331,7 +3331,19 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
         versions, there is no way of telling when the mouse leaves the
         frame, so we just have to put up with help-echo and mouse
         highlighting remaining while the frame is not active.  */
-      if (track_mouse_event_fn && !track_mouse_window)
+      if (track_mouse_event_fn && !track_mouse_window
+         /* If the menu bar is active, turning on tracking of mouse
+            movement events might send these events to the tooltip
+            frame, if the user happens to move the mouse pointer over
+            the tooltip.  But since we don't process events for
+            tooltip frames, this causes Windows to present a
+            hourglass cursor, which is ugly and unexpected.  So don't
+            enable tracking mouse events in this case; they will be
+            restarted when the menu pops down.  (Confusingly, the
+            menubar_active member of f->output_data.w32, tested
+            above, is only set when a menu was popped up _not_ from
+            the frame's menu bar, but via x-popup-menu.)  */
+         && !menubar_in_use)
        {
          TRACKMOUSEEVENT tme;
          tme.cbSize = sizeof (tme);