diff options
| author | Richard M. Stallman | 1994-05-28 18:37:06 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-05-28 18:37:06 +0000 |
| commit | fd13dbb2270aeaa5bef4f84a7d04a5ead1af9ae3 (patch) | |
| tree | 4958df31355439a2e886f91efc1b9b17bfdfaa64 /src/xterm.c | |
| parent | 133c8e42b3d12875476829956fe5d2375bc8175b (diff) | |
| download | emacs-fd13dbb2270aeaa5bef4f84a7d04a5ead1af9ae3.tar.gz emacs-fd13dbb2270aeaa5bef4f84a7d04a5ead1af9ae3.zip | |
(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.
Diffstat (limited to 'src/xterm.c')
| -rw-r--r-- | src/xterm.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/xterm.c b/src/xterm.c index 598e56c7a87..a6f572aa05c 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -4156,6 +4156,13 @@ XTread_socket (sd, bufp, numchars, waitp, expected) | |||
| 4156 | x_real_positions (f, &x, &y); | 4156 | x_real_positions (f, &x, &y); |
| 4157 | f->display.x->left_pos = x; | 4157 | f->display.x->left_pos = x; |
| 4158 | f->display.x->top_pos = y; | 4158 | f->display.x->top_pos = y; |
| 4159 | if (y != event.xconfigure.y) | ||
| 4160 | { | ||
| 4161 | /* Since the WM decorations come below top_pos now, | ||
| 4162 | we must put them below top_pos in the future. */ | ||
| 4163 | f->display.x->win_gravity = NorthWestGravity; | ||
| 4164 | x_wm_set_size_hint (f, 0, 0); | ||
| 4165 | } | ||
| 4159 | } | 4166 | } |
| 4160 | } | 4167 | } |
| 4161 | #endif /* not USE_X_TOOLKIT */ | 4168 | #endif /* not USE_X_TOOLKIT */ |
| @@ -5476,7 +5483,8 @@ XTframe_raise_lower (f, raise) | |||
| 5476 | } | 5483 | } |
| 5477 | 5484 | ||
| 5478 | 5485 | ||
| 5479 | /* Change from withdrawn state to mapped state. */ | 5486 | /* Change from withdrawn state to mapped state, |
| 5487 | or deiconify. */ | ||
| 5480 | 5488 | ||
| 5481 | x_make_frame_visible (f) | 5489 | x_make_frame_visible (f) |
| 5482 | struct frame *f; | 5490 | struct frame *f; |
| @@ -5489,7 +5497,8 @@ x_make_frame_visible (f) | |||
| 5489 | { | 5497 | { |
| 5490 | #ifdef HAVE_X11 | 5498 | #ifdef HAVE_X11 |
| 5491 | #ifndef USE_X_TOOLKIT | 5499 | #ifndef USE_X_TOOLKIT |
| 5492 | x_set_offset (f, f->display.x->left_pos, f->display.x->top_pos, 0); | 5500 | if (! FRAME_ICONIFIED_P (f)) |
| 5501 | x_set_offset (f, f->display.x->left_pos, f->display.x->top_pos, 0); | ||
| 5493 | #endif | 5502 | #endif |
| 5494 | 5503 | ||
| 5495 | if (! EQ (Vx_no_window_manager, Qt)) | 5504 | if (! EQ (Vx_no_window_manager, Qt)) |
| @@ -5661,6 +5670,11 @@ x_iconify_frame (f) | |||
| 5661 | BLOCK_INPUT; | 5670 | BLOCK_INPUT; |
| 5662 | 5671 | ||
| 5663 | #ifdef HAVE_X11 | 5672 | #ifdef HAVE_X11 |
| 5673 | /* Make sure the X server knows where the window should be positioned, | ||
| 5674 | in case the user deiconifies with the window manager. */ | ||
| 5675 | if (! FRAME_VISIBLE_P (f) && !FRAME_ICONIFIED_P (f)) | ||
| 5676 | x_set_offset (f, f->display.x->left_pos, f->display.x->top_pos, 0); | ||
| 5677 | |||
| 5664 | /* Since we don't know which revision of X we're running, we'll use both | 5678 | /* Since we don't know which revision of X we're running, we'll use both |
| 5665 | the X11R3 and X11R4 techniques. I don't know if this is a good idea. */ | 5679 | the X11R3 and X11R4 techniques. I don't know if this is a good idea. */ |
| 5666 | 5680 | ||