* nsterm.m (windowDidResize): Call x_set_window_size only when
authorJan Djärv <jan.h.d@swipnet.se>
Fri, 30 Sep 2011 07:42:26 +0000 (09:42 +0200)
committerJan Djärv <jan.h.d@swipnet.se>
Fri, 30 Sep 2011 07:42:26 +0000 (09:42 +0200)
ns_in_resize is true.  Otherwise set pixelwidth/height and
call change_frame_size.

Fixes: debbugs:9628

src/ChangeLog
src/nsterm.m

index b8b4d54..37d2de9 100644 (file)
@@ -1,3 +1,9 @@
+2011-09-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (windowDidResize): Call x_set_window_size only when
+       ns_in_resize is true.  Otherwise set pixelwidth/height and
+       call change_frame_size (Bug#9628).
+
 2011-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Port --enable-checking=all to Fedora 14 x86-64.
index 827404a..a2ae5e6 100644 (file)
@@ -5357,7 +5357,23 @@ ns_term_shutdown (int sig)
      a "windowDidResize" which calls x_set_window_size).  */
 #ifndef NS_IMPL_GNUSTEP
   if (cols > 0 && rows > 0)
-    x_set_window_size (emacsframe, 0, cols, rows);
+    {
+      if (ns_in_resize)
+        x_set_window_size (emacsframe, 0, cols, rows);
+      else
+        {
+          NSWindow *window = [self window];
+          NSRect wr = [window frame];
+          FRAME_PIXEL_WIDTH (emacsframe) = (int)wr.size.width
+            - emacsframe->border_width;
+          FRAME_PIXEL_HEIGHT (emacsframe) = (int)wr.size.height
+            - FRAME_NS_TITLEBAR_HEIGHT (emacsframe)
+            - FRAME_TOOLBAR_HEIGHT (emacsframe);
+          change_frame_size (emacsframe, rows, cols, 0, 0, 1);
+          SET_FRAME_GARBAGED (emacsframe);
+          cancel_mouse_face (emacsframe);
+        }
+    }
 #endif
 
   ns_send_appdefined (-1);