]> git.eshelyaron.com Git - emacs.git/commitdiff
(note_mouse_movement): Return 1 if mouse moved; 0 otherwise.
authorKim F. Storm <storm@cua.dk>
Thu, 13 Oct 2005 22:41:21 +0000 (22:41 +0000)
committerKim F. Storm <storm@cua.dk>
Thu, 13 Oct 2005 22:41:21 +0000 (22:41 +0000)
(handle_one_xevent): Only clear help_echo_string; restore it if
note_mouse_movement didn't record any mouse movement.

src/xterm.c

index d9a4f9d68f6a0f4bcedc67be6cb89ae0bfa53cb2..0f18a3ae9fcd22c8c3dc098ee230b6f134ba0b5d 100644 (file)
@@ -3582,7 +3582,7 @@ construct_mouse_click (result, event, f)
 static XMotionEvent last_mouse_motion_event;
 static Lisp_Object last_mouse_motion_frame;
 
-static void
+static int
 note_mouse_movement (frame, event)
      FRAME_PTR frame;
      XMotionEvent *event;
@@ -3596,10 +3596,11 @@ note_mouse_movement (frame, event)
       frame->mouse_moved = 1;
       last_mouse_scroll_bar = Qnil;
       note_mouse_highlight (frame, -1, -1);
+      return 1;
     }
 
   /* Has the mouse moved off the glyph it was on at the last sighting?  */
-  else if (event->x < last_mouse_glyph.x
+  if (event->x < last_mouse_glyph.x
           || event->x >= last_mouse_glyph.x + last_mouse_glyph.width
           || event->y < last_mouse_glyph.y
           || event->y >= last_mouse_glyph.y + last_mouse_glyph.height)
@@ -3609,7 +3610,10 @@ note_mouse_movement (frame, event)
       note_mouse_highlight (frame, event->x, event->y);
       /* Remember which glyph we're now on.  */
       remember_mouse_glyph (frame, event->x, event->y, &last_mouse_glyph);
+      return 1;
     }
+
+  return 0;
 }
 
 \f
@@ -6483,8 +6487,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
     case MotionNotify:
       {
         previous_help_echo_string = help_echo_string;
-        help_echo_string = help_echo_object = help_echo_window = Qnil;
-        help_echo_pos = -1;
+        help_echo_string = Qnil;
 
         if (dpyinfo->grabbed && last_mouse_frame
             && FRAME_LIVE_P (last_mouse_frame))
@@ -6523,7 +6526,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
 
                 last_window=window;
               }
-            note_mouse_movement (f, &event.xmotion);
+            if (!note_mouse_movement (f, &event.xmotion))
+             help_echo_string = previous_help_echo_string;
           }
         else
           {