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