Mercurial > emacs
changeset 66181:dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
(XTread_socket): Also ignore mouse motion just before a button
release event. Don't process button release event when mouse is
not grabbed.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Tue, 18 Oct 2005 08:07:06 +0000 |
parents | c80a3a047c83 |
children | 5c64978b4698 |
files | src/macterm.c |
diffstat | 1 files changed, 10 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/macterm.c Tue Oct 18 08:04:11 2005 +0000 +++ b/src/macterm.c Tue Oct 18 08:07:06 2005 +0000 @@ -3910,10 +3910,7 @@ return 1; } /* Has the mouse moved off the glyph it was on at the last sighting? */ - if (pos->h < last_mouse_glyph.left - || pos->h >= last_mouse_glyph.right - || pos->v < last_mouse_glyph.top - || pos->v >= last_mouse_glyph.bottom) + if (!PtInRect (*pos, &last_mouse_glyph)) { frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; @@ -9521,7 +9518,8 @@ } } - if (er.what != mouseDown && part_code != inContent) + if (er.what != mouseDown && + (part_code != inContent || dpyinfo->grabbed == 0)) break; switch (part_code) @@ -9644,12 +9642,6 @@ { dpyinfo->grabbed |= (1 << inev.code); last_mouse_frame = f; - /* Ignore any mouse motion that happened - before this event; any subsequent - mouse-movement Emacs events should reflect - only motion after the ButtonPress. */ - if (f != 0) - f->mouse_moved = 0; if (!tool_bar_p) last_tool_bar_item = -1; @@ -9665,6 +9657,13 @@ dpyinfo->grabbed &= ~(1 << inev.code); } + /* Ignore any mouse motion that happened before + this event; any subsequent mouse-movement Emacs + events should reflect only motion after the + ButtonPress. */ + if (f != 0) + f->mouse_moved = 0; + #ifdef USE_TOOLKIT_SCROLL_BARS if (inev.kind == MOUSE_CLICK_EVENT) #endif