Revision: 2970
http://skim-app.svn.sourceforge.net/skim-app/?rev=2970&view=rev
Author: hofman
Date: 2007-09-22 02:38:58 -0700 (Sat, 22 Sep 2007)
Log Message:
-----------
Different splitview resizing when there are drawers.
Modified Paths:
--------------
trunk/SKMainWindowController.m
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2007-09-21 20:12:38 UTC (rev 2969)
+++ trunk/SKMainWindowController.m 2007-09-22 09:38:58 UTC (rev 2970)
@@ -4898,32 +4898,33 @@
- (void)splitView:(NSSplitView *)sender
resizeSubviewsWithOldSize:(NSSize)oldSize {
if ([sender isEqual:splitView]) {
- NSView *leftView = [[sender subviews] objectAtIndex:0];
- NSView *mainView = [[sender subviews] objectAtIndex:1]; // pdfView
- NSView *rightView = [[sender subviews] objectAtIndex:2];
- NSRect leftFrame = [leftView frame];
- NSRect mainFrame = [mainView frame];
- NSRect rightFrame = [rightView frame];
-
- if (NSWidth(leftFrame) <= 1.0)
- leftFrame.size.width = 0.0;
- if (NSWidth(rightFrame) <= 1.0)
- rightFrame.size.width = 0.0;
-
- mainFrame.size.width = NSWidth([sender frame]) - NSWidth(leftFrame) -
NSWidth(rightFrame) - 2 * [sender dividerThickness];
-
- if (NSWidth(mainFrame) < 0.0) {
- float resizeFactor = 1.0 + NSWidth(mainFrame) /
(NSWidth(leftFrame) + NSWidth(rightFrame));
- leftFrame.size.width = floorf(resizeFactor * NSWidth(leftFrame));
- rightFrame.size.width = floorf(resizeFactor * NSWidth(rightFrame));
+ if (usesDrawers == NO) {
+ NSView *leftView = [[sender subviews] objectAtIndex:0];
+ NSView *mainView = [[sender subviews] objectAtIndex:1]; // pdfView
+ NSView *rightView = [[sender subviews] objectAtIndex:2];
+ NSRect leftFrame = [leftView frame];
+ NSRect mainFrame = [mainView frame];
+ NSRect rightFrame = [rightView frame];
+
+ if (NSWidth(leftFrame) <= 1.0)
+ leftFrame.size.width = 0.0;
+ if (NSWidth(rightFrame) <= 1.0)
+ rightFrame.size.width = 0.0;
+
mainFrame.size.width = NSWidth([sender frame]) -
NSWidth(leftFrame) - NSWidth(rightFrame) - 2 * [sender dividerThickness];
+
+ if (NSWidth(mainFrame) < 0.0) {
+ float resizeFactor = 1.0 + NSWidth(mainFrame) /
(NSWidth(leftFrame) + NSWidth(rightFrame));
+ leftFrame.size.width = floorf(resizeFactor *
NSWidth(leftFrame));
+ rightFrame.size.width = floorf(resizeFactor *
NSWidth(rightFrame));
+ mainFrame.size.width = NSWidth([sender frame]) -
NSWidth(leftFrame) - NSWidth(rightFrame) - 2 * [sender dividerThickness];
+ }
+ mainFrame.origin.x = NSMaxX(leftFrame) + [sender dividerThickness];
+ rightFrame.origin.x = NSMaxX(mainFrame) + [sender
dividerThickness];
+ [leftView setFrame:leftFrame];
+ [rightView setFrame:rightFrame];
+ [mainView setFrame:mainFrame];
}
- mainFrame.origin.x = NSMaxX(leftFrame) + [sender dividerThickness];
- rightFrame.origin.x = NSMaxX(mainFrame) + [sender dividerThickness];
- [leftView setFrame:leftFrame];
- [rightView setFrame:rightFrame];
- [mainView setFrame:mainFrame];
-
[sender adjustSubviews];
} else if ([sender isEqual:pdfSplitView]) {
if ([[sender subviews] count] > 1) {
@@ -4957,14 +4958,14 @@
- (void)splitViewDidResizeSubviews:(NSNotification *)notification {
id sender = [notification object];
- if ([sender isEqual:splitView] || sender == nil) {
- if ([[self window] frameAutosaveName] && settingUpWindow == NO) {
- [[NSUserDefaults standardUserDefaults]
setFloat:NSWidth([leftSideContentView frame]) forKey:SKLeftSidePaneWidthKey];
- [[NSUserDefaults standardUserDefaults]
setFloat:NSWidth([rightSideContentView frame]) forKey:SKRightSidePaneWidthKey];
- }
+ if (([sender isEqual:splitView] || sender == nil) && [[self window]
frameAutosaveName] && settingUpWindow == NO && usesDrawers == NO) {
+ [[NSUserDefaults standardUserDefaults]
setFloat:NSWidth([leftSideContentView frame]) forKey:SKLeftSidePaneWidthKey];
+ [[NSUserDefaults standardUserDefaults]
setFloat:NSWidth([rightSideContentView frame]) forKey:SKRightSidePaneWidthKey];
}
}
+#pragma mark NSDrawer delegate protocol
+
- (NSSize)drawerWillResizeContents:(NSDrawer *)sender
toSize:(NSSize)contentSize {
if ([[self window] frameAutosaveName] && settingUpWindow == NO) {
if ([sender isEqual:leftSideDrawer])
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit