diff options
author | Karl Heuer <kwzh@gnu.org> | 1994-04-28 07:59:17 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1994-04-28 07:59:17 +0000 |
commit | 10c5e63d2373803e1bbf52217c6e65527c09283f (patch) | |
tree | e6d4531120cc0c4c850dd82e203de14d771b0450 /src | |
parent | 245976082f70cec14f02b8963ebe73404a99bab2 (diff) | |
download | emacs-10c5e63d2373803e1bbf52217c6e65527c09283f.tar.gz |
(XTread_socket): Only top window cares about LeaveNotify.
Diffstat (limited to 'src')
-rw-r--r-- | src/xterm.c | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/src/xterm.c b/src/xterm.c index f35d3be6e5d..b8e410f8f30 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -3913,26 +3913,28 @@ XTread_socket (sd, bufp, numchars, waitp, expected) case LeaveNotify: - f = x_any_window_to_frame (event.xcrossing.window); - - if (f == mouse_face_mouse_frame) - /* If we move outside the frame, - then we're certainly no longer on any text in the frame. */ - clear_mouse_face (); - - if (event.xcrossing.focus) - { - if (! x_focus_event_frame) - x_new_focus_frame (0); - else - x_new_focus_frame (f); - } - else + f = x_top_window_to_frame (event.xcrossing.window); + if (f) { - if (f == x_focus_event_frame) - x_focus_event_frame = 0; - if (f == x_focus_frame) - x_new_focus_frame (0); + if (f == mouse_face_mouse_frame) + /* If we move outside the frame, + then we're certainly no longer on any text in the frame. */ + clear_mouse_face (); + + if (event.xcrossing.focus) + { + if (! x_focus_event_frame) + x_new_focus_frame (0); + else + x_new_focus_frame (f); + } + else + { + if (f == x_focus_event_frame) + x_focus_event_frame = 0; + if (f == x_focus_frame) + x_new_focus_frame (0); + } } #ifdef USE_X_TOOLKIT goto OTHER; |