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. */