Revision: 12886
          http://sourceforge.net/p/skim-app/code/12886
Author:   hofman
Date:     2022-05-05 23:11:54 +0000 (Thu, 05 May 2022)
Log Message:
-----------
Don't overlap find bar over pdfview on 10.13-, insert it above pdf split view

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

Modified: trunk/SKFindController.m
===================================================================
--- trunk/SKFindController.m    2022-05-05 21:49:52 UTC (rev 12885)
+++ trunk/SKFindController.m    2022-05-05 23:11:54 UTC (rev 12886)
@@ -117,7 +117,7 @@
     if (view == nil) {
         NSArray *subviews = [[findBar superview] subviews];
         for (view in subviews) {
-            if (view != findBar && NSMaxY([view frame]) >= NSMaxY([findBar 
frame]))
+            if (view != findBar && NSMaxY([view frame]) >= NSMinY([findBar 
frame]))
                 break;
         }
     }
@@ -126,8 +126,7 @@
     BOOL visible = (nil == [findBar superview]);
     NSLayoutConstraint *topConstraint = nil;
     CGFloat barHeight = NSHeight([findBar frame]);
-    NSArray *constraints;
-    NSScrollView *scrollView = [view descendantOfClass:[NSScrollView class]];
+    NSArray *constraints = nil;
     CGFloat inset = 0.0;
     if (RUNNING_AFTER(10_13))
         inset += NSHeight([[contentView window] frame]) - 
NSHeight([[contentView window] contentLayoutRect]);
@@ -139,6 +138,10 @@
             [NSLayoutConstraint constraintWithItem:contentView 
attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual 
toItem:findBar attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:0.0],
             [NSLayoutConstraint constraintWithItem:findBar 
attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeTop multiplier:1.0 
constant:animate ? inset - barHeight : inset], nil];
         [NSLayoutConstraint activateConstraints:constraints];
+        if (RUNNING_BEFORE(10_14)) {
+            [[contentView constraintWithFirstItem:view 
firstAttribute:NSLayoutAttributeTop] setActive:NO];
+            [[NSLayoutConstraint constraintWithItem:view 
attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:findBar 
attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0] setActive:YES];
+        }
         [contentView layoutSubtreeIfNeeded];
         topConstraint = [constraints lastObject];
         
@@ -147,6 +150,9 @@
         [self windowDidBecomeKey:nil];
     } else {
         topConstraint = [contentView constraintWithFirstItem:findBar 
firstAttribute:NSLayoutAttributeTop];
+        if (RUNNING_BEFORE(10_14))
+            constraints = [NSArray arrayWithObjects:
+                [NSLayoutConstraint constraintWithItem:view 
attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0], 
nil];
         
         [[NSNotificationCenter defaultCenter] removeObserver:self 
name:NSWindowDidBecomeKeyNotification object:[findBar window]];
         [[NSNotificationCenter defaultCenter] removeObserver:self 
name:NSWindowDidResignKeyNotification object:[findBar window]];
@@ -156,8 +162,11 @@
     
     [messageField setHidden:YES];
     
-    [scrollView setAutomaticallyAdjustsContentInsets:visible == NO];
-    [scrollView setContentInsets:NSEdgeInsetsMake(visible ? barHeight + inset 
: inset, 0.0, 0.0, 0.0)];
+    if (RUNNING_AFTER(10_13)) {
+        NSScrollView *scrollView = [view descendantOfClass:[NSScrollView 
class]];
+        [scrollView setAutomaticallyAdjustsContentInsets:visible == NO];
+        [scrollView setContentInsets:NSEdgeInsetsMake(visible ? barHeight + 
inset : inset, 0.0, 0.0, 0.0)];
+    }
     
     if (animate) {
         animating = YES;
@@ -166,14 +175,21 @@
                 [[topConstraint animator] setConstant:visible ? inset : inset 
- barHeight];
             }
             completionHandler:^{
-                if (visible == NO)
+                if (visible == NO) {
                     [findBar removeFromSuperview];
+                    if (RUNNING_BEFORE(10_14))
+                        [NSLayoutConstraint activateConstraints:constraints];
+                }
                 [[contentView window] recalculateKeyViewLoop];
+                
                 animating = NO;
             }];
     } else {
-        if (visible == NO)
+        if (visible == NO) {
             [findBar removeFromSuperview];
+            if (RUNNING_BEFORE(10_14))
+                [NSLayoutConstraint activateConstraints:constraints];
+        }
         [contentView layoutSubtreeIfNeeded];
         [[contentView window] recalculateKeyViewLoop];
     }

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2022-05-05 21:49:52 UTC (rev 12885)
+++ trunk/SKMainWindowController.m      2022-05-05 23:11:54 UTC (rev 12886)
@@ -1825,7 +1825,7 @@
         [findController setDelegate:self];
     }
     if ([[findController view] window] == nil) {
-        [findController toggleAboveView:pdfView animate:YES];
+        [findController toggleAboveView:RUNNING_AFTER(10_3) ? pdfView : 
pdfSplitView animate:YES];
     }
     [[findController findField] selectText:nil];
 }

Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m   2022-05-05 21:49:52 UTC (rev 
12885)
+++ trunk/SKMainWindowController_FullScreen.m   2022-05-05 23:11:54 UTC (rev 
12886)
@@ -215,8 +215,10 @@
     [scrollView setHasHorizontalScroller:NO];
     [scrollView setHasVerticalScroller:NO];
     [scrollView setDrawsBackground:NO];
-    [scrollView setAutomaticallyAdjustsContentInsets:YES];
-    [scrollView setContentInsets:NSEdgeInsetsZero];
+    if (RUNNING_AFTER(10_13)) {
+        [scrollView setAutomaticallyAdjustsContentInsets:YES];
+        [scrollView setContentInsets:NSEdgeInsetsZero];
+    }
     
     [pdfView setCurrentSelection:nil];
     if ([pdfView hasReadingBar])
@@ -279,7 +281,7 @@
     [scrollView setHasVerticalScroller:[[savedNormalSetup 
objectForKey:HASVERTICALSCROLLER_KEY] boolValue]];
     [scrollView setAutohidesScrollers:[[savedNormalSetup 
objectForKey:AUTOHIDESSCROLLERS_KEY] boolValue]];
     [scrollView setDrawsBackground:[[savedNormalSetup 
objectForKey:DRAWSBACKGROUND_KEY] boolValue]];
-    if ([[findController view] window]) {
+    if (RUNNING_AFTER(10_13) && [[findController view] window]) {
         [scrollView setAutomaticallyAdjustsContentInsets:NO];
         [scrollView 
setContentInsets:NSEdgeInsetsMake(NSHeight([[findController view] frame]) + 
titleBarHeight, 0.0, 0.0, 0.0)];
     }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to