# HG changeset patch # User Richard M. Stallman # Date 770150226 0 # Node ID a810335742bb48ba78bf6d676b5115d4e75796de # Parent a071be44cfae2c40a83e2a2cbe18fb494771ff62 (x_iconify_frame): Call x_set_offset, if x_make_frame_visible would do so. (x_make_frame_visible): Don't call x_set_offset if frame is iconic. (XTread_socket): For ConfigureNotify, if wm decorations exist, set NorthWestGravity. diff -r a071be44cfae -r a810335742bb src/xterm.c --- a/src/xterm.c Sat May 28 18:32:47 1994 +0000 +++ b/src/xterm.c Sat May 28 18:37:06 1994 +0000 @@ -4156,6 +4156,13 @@ x_real_positions (f, &x, &y); f->display.x->left_pos = x; f->display.x->top_pos = y; + if (y != event.xconfigure.y) + { + /* Since the WM decorations come below top_pos now, + we must put them below top_pos in the future. */ + f->display.x->win_gravity = NorthWestGravity; + x_wm_set_size_hint (f, 0, 0); + } } } #endif /* not USE_X_TOOLKIT */ @@ -5476,7 +5483,8 @@ } -/* Change from withdrawn state to mapped state. */ +/* Change from withdrawn state to mapped state, + or deiconify. */ x_make_frame_visible (f) struct frame *f; @@ -5489,7 +5497,8 @@ { #ifdef HAVE_X11 #ifndef USE_X_TOOLKIT - x_set_offset (f, f->display.x->left_pos, f->display.x->top_pos, 0); + if (! FRAME_ICONIFIED_P (f)) + x_set_offset (f, f->display.x->left_pos, f->display.x->top_pos, 0); #endif if (! EQ (Vx_no_window_manager, Qt)) @@ -5661,6 +5670,11 @@ BLOCK_INPUT; #ifdef HAVE_X11 + /* Make sure the X server knows where the window should be positioned, + in case the user deiconifies with the window manager. */ + if (! FRAME_VISIBLE_P (f) && !FRAME_ICONIFIED_P (f)) + x_set_offset (f, f->display.x->left_pos, f->display.x->top_pos, 0); + /* Since we don't know which revision of X we're running, we'll use both the X11R3 and X11R4 techniques. I don't know if this is a good idea. */