emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 aee0bc8: Fix non-native fullscreen on NS (bug#288


From: Alan Third
Subject: [Emacs-diffs] emacs-26 aee0bc8: Fix non-native fullscreen on NS (bug#28872)
Date: Wed, 25 Oct 2017 09:21:11 -0400 (EDT)

branch: emacs-26
commit aee0bc877579ad606d33a9abf162da4bd50da618
Author: Alan Third <address@hidden>
Commit: Alan Third <address@hidden>

    Fix non-native fullscreen on NS (bug#28872)
    
    * src/nsterm.m (EmacsView::updateFrameSize): Handle case where
    FRAME_TOOLBAR_HEIGHT returns a negative number.  Force WM to set size
    of frame.
---
 src/nsterm.m | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/nsterm.m b/src/nsterm.m
index 709e905..a382e5f 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -6804,14 +6804,19 @@ not_in_argv (NSString *arg)
 
   if (! [self isFullscreen])
     {
+      int toolbar_height;
 #ifdef NS_IMPL_GNUSTEP
       // GNUstep does not always update the tool bar height.  Force it.
       if (toolbar && [toolbar isVisible])
           update_frame_tool_bar (emacsframe);
 #endif
 
+      toolbar_height = FRAME_TOOLBAR_HEIGHT (emacsframe);
+      if (toolbar_height < 0)
+        toolbar_height = 35;
+
       extra = FRAME_NS_TITLEBAR_HEIGHT (emacsframe)
-        + FRAME_TOOLBAR_HEIGHT (emacsframe);
+        + toolbar_height;
     }
 
   if (wait_for_tool_bar)
@@ -6858,11 +6863,12 @@ not_in_argv (NSString *arg)
       SET_FRAME_GARBAGED (emacsframe);
       cancel_mouse_face (emacsframe);
 
-      /* The next two lines appear to be setting the frame to the same
-         size as it already is.  Why are they there? */
-      // wr = NSMakeRect (0, 0, neww, newh);
-
-      // [view setFrame: wr];
+      /* The next two lines set the frame to the same size as we've
+         already set above.  We need to do this when we switch back
+         from non-native fullscreen, in other circumstances it appears
+         to be a noop.  (bug#28872) */
+      wr = NSMakeRect (0, 0, neww, newh);
+      [view setFrame: wr];
 
       // to do: consider using [NSNotificationCenter postNotificationName:].
       [self windowDidMove: // Update top/left.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]