Mercurial > emacs
changeset 17954:7c919d7f8217
(x_real_positions): Directly compare the frame's window
or parent with the root window.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 26 May 1997 07:53:35 +0000 |
parents | 96a51be54a7e |
children | 3140e48262f9 |
files | src/xfns.c |
diffstat | 1 files changed, 18 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xfns.c Mon May 26 06:22:15 1997 +0000 +++ b/src/xfns.c Mon May 26 07:53:35 1997 +0000 @@ -969,6 +969,7 @@ while (1) { int count = x_catch_errors (FRAME_X_DISPLAY (f)); + Window outer_window; XQueryTree (FRAME_X_DISPLAY (f), outer, &tmp_root_window, &f->output_data.x->parent_desc, @@ -980,28 +981,21 @@ /* Find the position of the outside upper-left corner of the inner window, with respect to the outer window. */ if (f->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window) - { - XTranslateCoordinates (FRAME_X_DISPLAY (f), - - /* From-window, to-window. */ -#ifdef USE_X_TOOLKIT - XtWindow (f->output_data.x->widget), -#else - f->output_data.x->window_desc, -#endif - f->output_data.x->parent_desc, - - /* From-position, to-position. */ - 0, 0, &win_x, &win_y, - - /* Child of win. */ - &child); - -#if 0 /* The values seem to be right without this and wrong with. */ - win_x += f->output_data.x->border_width; - win_y += f->output_data.x->border_width; -#endif - } + outer_window = f->output_data.x->parent_desc; + else + outer_window = outer; + + XTranslateCoordinates (FRAME_X_DISPLAY (f), + + /* From-window, to-window. */ + outer_window, + FRAME_X_DISPLAY_INFO (f)->root_window, + + /* From-position, to-position. */ + 0, 0, &win_x, &win_y, + + /* Child of win. */ + &child); /* It is possible for the window returned by the XQueryNotify to become invalid by the time we call XTranslateCoordinates. @@ -1017,8 +1011,8 @@ x_uncatch_errors (FRAME_X_DISPLAY (f), count); } - *xptr = f->output_data.x->left_pos - win_x; - *yptr = f->output_data.x->top_pos - win_y; + *xptr = win_x; + *yptr = win_y; } /* Insert a description of internally-recorded parameters of frame X