Mercurial > emacs
changeset 3045:0267fb20b0df
(XTread_socket, ConfigureNotify case):
Convert from parent window, not Emacs window.
(XTread_socket): Handle ReparentNotify events.
(XTread_socket): For ConfigureNotify event,
translate coordinates if send_event field is false
provided the x-coord value is not large.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 25 May 1993 01:00:21 +0000 |
parents | 81c1ecaafd88 |
children | 965eb3b38ba2 |
files | src/xterm.c |
diffstat | 1 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xterm.c Tue May 25 00:43:37 1993 +0000 +++ b/src/xterm.c Tue May 25 01:00:21 1993 +0000 @@ -2697,6 +2697,12 @@ #endif break; + case ReparentNotify: + f = x_window_to_frame (event.xreparent.window); + if (f) + f->display.x->parent_desc = event.xreparent.parent; + break; + case Expose: f = x_window_to_frame (event.xexpose.window); if (f) @@ -3090,21 +3096,18 @@ SET_FRAME_GARBAGED (f); } - if (! event.xconfigure.send_event - /* Sometimes we get root-relative coordinates - even tho send_event is 0. - This is not a perfectly reliable way of distinguishing, - but it does the right thing except in a case - where it doesn't hurt much to be wrong. */ - && event.xconfigure.x < 20) + if (! event.xconfigure.send_event) { Window win, child; int win_x, win_y; + /* Coords are relative to the parent. + Convert them to root-relative. */ XTranslateCoordinates (x_current_display, /* From-window, to-window. */ - event.xconfigure.window, ROOT_WINDOW, + f->display.x->parent_desc, + ROOT_WINDOW, /* From-position, to-position. */ event.xconfigure.x,