Mercurial > emacs
comparison src/xterm.c @ 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 | 44ff7a0a70b6 |
children | 10e818a0248a |
comparison
equal
deleted
inserted
replaced
7737:a071be44cfae | 7738:a810335742bb |
---|---|
4154 { | 4154 { |
4155 int x, y; | 4155 int x, y; |
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 */ |
4162 break; | 4169 break; |
4163 | 4170 |
5474 else | 5481 else |
5475 x_lower_frame (f); | 5482 x_lower_frame (f); |
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; |
5483 { | 5491 { |
5484 int mask; | 5492 int mask; |
5487 | 5495 |
5488 if (! FRAME_VISIBLE_P (f)) | 5496 if (! FRAME_VISIBLE_P (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)) |
5496 x_wm_set_window_state (f, NormalState); | 5505 x_wm_set_window_state (f, NormalState); |
5497 #ifdef USE_X_TOOLKIT | 5506 #ifdef USE_X_TOOLKIT |
5659 #else /* not USE_X_TOOLKIT */ | 5668 #else /* not USE_X_TOOLKIT */ |
5660 | 5669 |
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 |
5667 /* X11R4: send a ClientMessage to the window manager using the | 5681 /* X11R4: send a ClientMessage to the window manager using the |
5668 WM_CHANGE_STATE type. */ | 5682 WM_CHANGE_STATE type. */ |