From 9ceebf39d984e4415dbb9ae62e883902051257c8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Fri, 30 Sep 2011 09:42:26 +0200 Subject: [PATCH] * nsterm.m (windowDidResize): Call x_set_window_size only when ns_in_resize is true. Otherwise set pixelwidth/height and call change_frame_size. Fixes: debbugs:9628 --- src/ChangeLog | 6 ++++++ src/nsterm.m | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index b8b4d54b4f7..37d2de93c11 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2011-09-30 Jan Djärv + + * 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 Port --enable-checking=all to Fedora 14 x86-64. diff --git a/src/nsterm.m b/src/nsterm.m index 827404a2974..a2ae5e69512 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -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); -- 2.39.2