Mercurial > emacs
changeset 7738:a810335742bb
(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.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 28 May 1994 18:37:06 +0000 |
parents | a071be44cfae |
children | f2747ec591fd |
files | src/xterm.c |
diffstat | 1 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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. */