Mercurial > emacs
changeset 18528:73f4d9258f04
(x_make_frame_visible): Check has_been_visible
field before the UNBLOCK_INPUT.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 02 Jul 1997 04:41:00 +0000 |
parents | bb491744ccd7 |
children | 8e293f1a19a9 |
files | src/xterm.c |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xterm.c Wed Jul 02 03:37:27 1997 +0000 +++ b/src/xterm.c Wed Jul 02 04:41:00 1997 +0000 @@ -5687,6 +5687,10 @@ { Lisp_Object frame; int count = input_signal_count; + /* This must be before UNBLOCK_INPUT + since events that arrive in response to the actions above + will set it when they are handled. */ + int previously_visible = f->output_data.x->has_been_visible; original_left = f->output_data.x->left_pos; original_top = f->output_data.x->top_pos; @@ -5699,11 +5703,15 @@ /* Now move the window back to where it was "supposed to be". But don't do it if the gravity is negative. When the gravity is negative, this uses a position - that is 3 pixels too low. Perhaps that's really the border width. */ + that is 3 pixels too low. Perhaps that's really the border width. + + Don't do this if the window has never been visible before, + because the window manager may choose the position + and we don't want to override it. */ if (! FRAME_VISIBLE_P (f) && f->output_data.x->win_gravity == NorthWestGravity - && f->output_data.x->has_been_visible) + && previously_visible) { BLOCK_INPUT;