]> git.eshelyaron.com Git - emacs.git/commitdiff
(x_iconify_frame): Call x_set_offset,
authorRichard M. Stallman <rms@gnu.org>
Sat, 28 May 1994 18:37:06 +0000 (18:37 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 28 May 1994 18:37:06 +0000 (18:37 +0000)
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.

src/xterm.c

index 598e56c7a87a514974098b09484e606d61030870..a6f572aa05c108cfe7a3b4638cee14f77a06e306 100644 (file)
@@ -4156,6 +4156,13 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
                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 @@ XTframe_raise_lower (f, raise)
 }
 
 
-/* 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 @@ x_make_frame_visible (f)
     {
 #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 @@ x_iconify_frame (f)
   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.  */