aboutsummaryrefslogtreecommitdiffstats
path: root/src/nsmenu.m
diff options
context:
space:
mode:
authorJan Djärv2014-04-04 18:32:24 +0200
committerJan Djärv2014-04-04 18:32:24 +0200
commit11a9c72fafaa02ef26708da6ffe765a7fdaa4565 (patch)
treee20e6c51747a69be7e81daa1ab1be642a7981043 /src/nsmenu.m
parent97bac2112e7b4332834900863810370a57e38fbe (diff)
downloademacs-11a9c72fafaa02ef26708da6ffe765a7fdaa4565.tar.gz
emacs-11a9c72fafaa02ef26708da6ffe765a7fdaa4565.zip
Backport from trunk.
* nsmenu.m (update_frame_tool_bar): Return early if view or toolbar is nil. If waiting for toolbar to complete, force a redraw. (free_frame_tool_bar): Set wait_for_tool_bar = NO * nsterm.h (EmacsView): Add wait_for_tool_bar. * nsterm.m (updateFrameSize:): If waiting for the tool bar and tool bar is zero height, just return (Bug#16976). (initFrameFromEmacs:): Initialize wait_for_tool_bar.
Diffstat (limited to 'src/nsmenu.m')
-rw-r--r--src/nsmenu.m15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nsmenu.m b/src/nsmenu.m
index f8cd07478ed..24842241f37 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -1054,8 +1054,10 @@ free_frame_tool_bar (struct frame *f)
1054 Under NS we just hide the toolbar until it might be needed again. 1054 Under NS we just hide the toolbar until it might be needed again.
1055 -------------------------------------------------------------------------- */ 1055 -------------------------------------------------------------------------- */
1056{ 1056{
1057 EmacsView *view = FRAME_NS_VIEW (f);
1057 block_input (); 1058 block_input ();
1058 [[FRAME_NS_VIEW (f) toolbar] setVisible: NO]; 1059 view->wait_for_tool_bar = NO;
1060 [[view toolbar] setVisible: NO];
1059 FRAME_TOOLBAR_HEIGHT (f) = 0; 1061 FRAME_TOOLBAR_HEIGHT (f) = 0;
1060 unblock_input (); 1062 unblock_input ();
1061} 1063}
@@ -1071,6 +1073,7 @@ update_frame_tool_bar (struct frame *f)
1071 NSWindow *window = [view window]; 1073 NSWindow *window = [view window];
1072 EmacsToolbar *toolbar = [view toolbar]; 1074 EmacsToolbar *toolbar = [view toolbar];
1073 1075
1076 if (view == nil || toolbar == nil) return;
1074 block_input (); 1077 block_input ();
1075 1078
1076#ifdef NS_IMPL_COCOA 1079#ifdef NS_IMPL_COCOA
@@ -1176,9 +1179,13 @@ update_frame_tool_bar (struct frame *f)
1176 FRAME_TOOLBAR_HEIGHT (f) = 1179 FRAME_TOOLBAR_HEIGHT (f) =
1177 NSHeight ([window frameRectForContentRect: NSMakeRect (0, 0, 0, 0)]) 1180 NSHeight ([window frameRectForContentRect: NSMakeRect (0, 0, 0, 0)])
1178 - FRAME_NS_TITLEBAR_HEIGHT (f); 1181 - FRAME_NS_TITLEBAR_HEIGHT (f);
1179 if (FRAME_TOOLBAR_HEIGHT (f) < 0) // happens if frame is fullscreen. 1182 if (FRAME_TOOLBAR_HEIGHT (f) < 0) // happens if frame is fullscreen.
1180 FRAME_TOOLBAR_HEIGHT (f) = 0; 1183 FRAME_TOOLBAR_HEIGHT (f) = 0;
1181 unblock_input (); 1184
1185 if (view->wait_for_tool_bar && FRAME_TOOLBAR_HEIGHT (f) > 0)
1186 [view setNeedsDisplay: YES];
1187
1188 unblock_input ();
1182} 1189}
1183 1190
1184 1191