Commit 0a3fde9d authored by Kim F. Storm's avatar Kim F. Storm

Undo 2005-10-23 change.

(last_mouse_glyph_frame): New var.
(note_mouse_movement): Say mouse moved if current frame differs
from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
(XTmouse_position): Set last_mouse_glyph_frame.
(handle_one_xevent): Clear last_mouse_glyph_frame [instead of
last_mouse_glyph] on mouse up/down event.
parent 94717db1
...@@ -249,6 +249,7 @@ static unsigned long ignore_next_mouse_click_timeout; ...@@ -249,6 +249,7 @@ static unsigned long ignore_next_mouse_click_timeout;
/* Where the mouse was last time we reported a mouse event. */ /* Where the mouse was last time we reported a mouse event. */
static XRectangle last_mouse_glyph; static XRectangle last_mouse_glyph;
static FRAME_PTR last_mouse_glyph_frame;
static Lisp_Object last_mouse_press_frame; static Lisp_Object last_mouse_press_frame;
/* The scroll bar in which the last X motion event occurred. /* The scroll bar in which the last X motion event occurred.
...@@ -3596,21 +3597,24 @@ note_mouse_movement (frame, event) ...@@ -3596,21 +3597,24 @@ note_mouse_movement (frame, event)
frame->mouse_moved = 1; frame->mouse_moved = 1;
last_mouse_scroll_bar = Qnil; last_mouse_scroll_bar = Qnil;
note_mouse_highlight (frame, -1, -1); note_mouse_highlight (frame, -1, -1);
last_mouse_glyph_frame = 0;
return 1; return 1;
} }
note_mouse_highlight (frame, event->x, event->y);
/* Has the mouse moved off the glyph it was on at the last sighting? */ /* Has the mouse moved off the glyph it was on at the last sighting? */
if (event->x < last_mouse_glyph.x if (frame != last_mouse_glyph_frame
|| event->x < last_mouse_glyph.x
|| event->x >= last_mouse_glyph.x + last_mouse_glyph.width || event->x >= last_mouse_glyph.x + last_mouse_glyph.width
|| event->y < last_mouse_glyph.y || event->y < last_mouse_glyph.y
|| event->y >= last_mouse_glyph.y + last_mouse_glyph.height) || event->y >= last_mouse_glyph.y + last_mouse_glyph.height)
{ {
frame->mouse_moved = 1; frame->mouse_moved = 1;
last_mouse_scroll_bar = Qnil; last_mouse_scroll_bar = Qnil;
note_mouse_highlight (frame, event->x, event->y);
/* Remember which glyph we're now on. */ /* Remember which glyph we're now on. */
remember_mouse_glyph (frame, event->x, event->y, &last_mouse_glyph); remember_mouse_glyph (frame, event->x, event->y, &last_mouse_glyph);
last_mouse_glyph_frame = frame;
return 1; return 1;
} }
...@@ -3821,6 +3825,7 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time) ...@@ -3821,6 +3825,7 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time)
the frame are divided into. */ the frame are divided into. */
remember_mouse_glyph (f1, win_x, win_y, &last_mouse_glyph); remember_mouse_glyph (f1, win_x, win_y, &last_mouse_glyph);
last_mouse_glyph_frame = f1;
*bar_window = Qnil; *bar_window = Qnil;
*part = 0; *part = 0;
...@@ -6658,7 +6663,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) ...@@ -6658,7 +6663,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
int tool_bar_p = 0; int tool_bar_p = 0;
bzero (&compose_status, sizeof (compose_status)); bzero (&compose_status, sizeof (compose_status));
bzero (&last_mouse_glyph, sizeof (last_mouse_glyph)); last_mouse_glyph_frame = 0;
if (dpyinfo->grabbed if (dpyinfo->grabbed
&& last_mouse_frame && last_mouse_frame
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment