[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src nsterm.m
From: |
Adrian Robert |
Subject: |
[Emacs-diffs] emacs/src nsterm.m |
Date: |
Fri, 06 Mar 2009 14:52:39 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Adrian Robert <arobert> 09/03/06 14:52:39
Modified files:
src : nsterm.m
Log message:
* nsterm.m (x_set_window_size): Change back to calculated method
of setting toolbar height under Cocoa. (Bug#2546)
(EmacsView-windowWillUseStandardFrame:defaultFrame:): New
method.
(EmacsView-drawRect:): Completely shortcircuit if ns_in_resize.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/nsterm.m?cvsroot=emacs&r1=1.62&r2=1.63
Patches:
Index: nsterm.m
===================================================================
RCS file: /sources/emacs/emacs/src/nsterm.m,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- nsterm.m 5 Mar 2009 16:35:01 -0000 1.62
+++ nsterm.m 6 Mar 2009 14:52:37 -0000 1.63
@@ -1152,21 +1152,21 @@
pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, cols);
pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows);
- /* If we have a change in toolbar display, calculate height */
- if (tb)
+ /* If we have a toolbar, take its height into account. */
/* XXX: GNUstep has not yet implemented the first method below, added
in Panther, however the second is incorrect under Cocoa. */
-#ifdef NS_IMPL_GNUSTEP
- FRAME_NS_TOOLBAR_HEIGHT (f)
- = NSHeight ([NSWindow frameRectForContentRect: NSMakeRect (0, 0, 0, 0)
- styleMask: [window styleMask]])
- - FRAME_NS_TITLEBAR_HEIGHT (f);
-#else
- FRAME_NS_TOOLBAR_HEIGHT (f) = 32;
- /* actually get wrong result here if toolbar not yet displayed
+ if (tb)
+ FRAME_NS_TOOLBAR_HEIGHT (f) =
+#ifdef NS_IMPL_COCOA
NSHeight ([window frameRectForContentRect: NSMakeRect (0, 0, 0, 0)])
- - FRAME_NS_TITLEBAR_HEIGHT (f); */
+ /* NOTE: previously this would generate wrong result if toolbar not
+ yet displayed and fixing toolbar_height=32 helped, but
+ now (200903) seems no longer needed */
+#else
+ NSHeight ([NSWindow frameRectForContentRect: NSMakeRect (0, 0, 0, 0)
+ styleMask: [window styleMask]])
#endif
+ - FRAME_NS_TITLEBAR_HEIGHT (f);
else
FRAME_NS_TOOLBAR_HEIGHT (f) = 0;
@@ -5293,14 +5293,33 @@
/* if we don't do this manually, the window will resize but not move */
- (BOOL)windowShouldZoom: (NSWindow *)sender toFrame: (NSRect)newFrame
{
+ NSTRACE (windowShouldZoom);
[[self window] setFrame: newFrame display: NO];
return YES;
}
#endif
-/* Implement this to control size of frame on zoom.
+
+/* Override to do something slightly nonstandard, but nice. First click on
+ zoom button will zoom vertically. Second will zoom completely. Third
+ returns to original. */
- (NSRect)windowWillUseStandardFrame:(NSWindow *)sender
- defaultFrame:(NSRect)defaultFrame; */
+ defaultFrame:(NSRect)defaultFrame
+{
+ NSRect result = [sender frame];
+ NSTRACE (windowWillUseStandardFrame);
+
+ if (result.size.height == defaultFrame.size.height) {
+ result = defaultFrame;
+ } else {
+ result.size.height = defaultFrame.size.height;
+ result.origin.y = defaultFrame.origin.y;
+ }
+
+ /* A windowWillResize does not get generated at least on Tiger. */
+ [self windowWillResize: sender toSize: result.size];
+ return result;
+}
- (void)windowDidDeminiaturize: sender
@@ -5448,18 +5467,13 @@
NSTRACE (drawRect);
- if (!emacsframe || !emacsframe->output_data.ns)
+ if (!emacsframe || !emacsframe->output_data.ns || ns_in_resize)
return;
- if (!ns_in_resize)
ns_clear_frame_area (emacsframe, x, y, width, height);
expose_frame (emacsframe, x, y, width, height);
-
emacsframe->async_visible = 1;
emacsframe->async_iconified = 0;
-
-/* SET_FRAME_GARBAGED (emacsframe);
- ns_send_appdefined (-1); */
}
- [Emacs-diffs] emacs/src nsterm.m,
Adrian Robert <=