Revision: 3013
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3013&view=rev
Author:   hofman
Date:     2007-10-03 04:25:58 -0700 (Wed, 03 Oct 2007)

Log Message:
-----------
Simplify splitview resizing code.

Modified Paths:
--------------
    trunk/SKMainWindowController.m

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2007-10-03 09:39:31 UTC (rev 3012)
+++ trunk/SKMainWindowController.m      2007-10-03 11:25:58 UTC (rev 3013)
@@ -4914,6 +4914,7 @@
 
 - (void)splitView:(NSSplitView *)sender 
resizeSubviewsWithOldSize:(NSSize)oldSize {
     if ([sender isEqual:splitView]) {
+        
         if (usesDrawers == NO) {
             NSView *leftView = [[sender subviews] objectAtIndex:0];
             NSView *mainView = [[sender subviews] objectAtIndex:1]; // pdfView
@@ -4921,55 +4922,52 @@
             NSRect leftFrame = [leftView frame];
             NSRect mainFrame = [mainView frame];
             NSRect rightFrame = [rightView frame];
+            float contentWidth = NSWidth([sender frame]) - 2 * [sender 
dividerThickness];
             
             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));
+            if (contentWidth < NSWidth(leftFrame) + NSWidth(rightFrame)) {
+                float resizeFactor = contentWidth / (oldSize.width - [sender 
dividerThickness]);
                 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.size.width = contentWidth - NSWidth(leftFrame) - 
NSWidth(rightFrame);
             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) {
             NSView *primaryView = [[sender subviews] objectAtIndex:0];
             NSView *secondaryView = [[sender subviews] objectAtIndex:1];
             NSRect primaryFrame = [primaryView frame];
             NSRect secondaryFrame = [secondaryView frame];
+            float contentHeight = NSHeight([sender frame]) - [sender 
dividerThickness];
             
             if (NSHeight(secondaryFrame) <= 1.0)
                 secondaryFrame.size.height = 0.0;
             
-            primaryFrame.size.height = NSHeight([sender frame]) - 
NSHeight(secondaryFrame)  - [sender dividerThickness];
+            if (contentHeight < NSHeight(secondaryFrame))
+                secondaryFrame.size.height = floorf(NSHeight(secondaryFrame) * 
contentHeight / (oldSize.height - [sender dividerThickness]));
             
-            if (NSHeight(primaryFrame) < 0.0) {
-                float resizeFactor = 1.0 + NSHeight(primaryFrame) / 
NSHeight(secondaryFrame);
-                secondaryFrame.size.height = floorf(resizeFactor * 
NSHeight(secondaryFrame));
-                primaryFrame.size.height = NSHeight([sender frame]) - 
NSHeight(secondaryFrame) - 2 * [sender dividerThickness];
-            }
+            primaryFrame.size.height = contentHeight - 
NSHeight(secondaryFrame);
             primaryFrame.origin.x = NSMaxY(secondaryFrame) + [sender 
dividerThickness];
             [primaryView setFrame:primaryFrame];
             [secondaryView setFrame:secondaryFrame];
-            
-            [sender adjustSubviews];
         } else {
-            NSView *primaryView = [[sender subviews] objectAtIndex:0];
-            [primaryView setFrame:[sender bounds]];
-            [sender adjustSubviews];
+            [[[sender subviews] objectAtIndex:0] setFrame:[sender bounds]];
         }
+        
     }
+    [sender adjustSubviews];
 }
 
 - (void)splitViewDidResizeSubviews:(NSNotification *)notification {


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

Reply via email to