Mercurial > emacs
changeset 66074:870f6c72cfc4
(note_mouse_movement): Return 1 if mouse moved; 0 otherwise.
(handle_one_xevent): Only clear help_echo_string; restore it if
note_mouse_movement didn't record any mouse movement.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Thu, 13 Oct 2005 22:41:21 +0000 |
parents | 17431e3efe9d |
children | 1f435e64880f |
files | src/xterm.c |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xterm.c Thu Oct 13 22:39:06 2005 +0000 +++ b/src/xterm.c Thu Oct 13 22:41:21 2005 +0000 @@ -3582,7 +3582,7 @@ 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 @@ 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_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; } @@ -6483,8 +6487,7 @@ 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 @@ last_window=window; } - note_mouse_movement (f, &event.xmotion); + if (!note_mouse_movement (f, &event.xmotion)) + help_echo_string = previous_help_echo_string; } else {