Revision: 16702
http://sourceforge.net/p/skim-app/code/16702
Author: hofman
Date: 2026-10-23 16:16:11 +0000 (Fri, 23 Oct 2026)
Log Message:
-----------
increase hugging priority, use same view for vertical constraints
Modified Paths:
--------------
trunk/Base.lproj/TransitionSheet.xib
trunk/SKMainWindowController_FullScreen.m
Modified: trunk/Base.lproj/TransitionSheet.xib
===================================================================
--- trunk/Base.lproj/TransitionSheet.xib 2026-10-23 14:28:53 UTC (rev
16701)
+++ trunk/Base.lproj/TransitionSheet.xib 2026-10-23 16:16:11 UTC (rev
16702)
@@ -180,6 +180,7 @@
<constraint firstItem="28"
firstAttribute="baseline" secondItem="25" secondAttribute="baseline"
id="JCu-xg-iA0"/>
<constraint firstItem="13"
firstAttribute="leading" secondItem="30" secondAttribute="leading"
id="JMT-YD-n5O"/>
<constraint firstItem="CAb-kL-2uK"
firstAttribute="leading" secondItem="30" secondAttribute="leading"
id="K5H-23-cSs"/>
+ <constraint firstItem="CAb-kL-2uK"
firstAttribute="top" secondItem="30" secondAttribute="bottom" constant="8"
symbolic="YES" id="KBj-IG-fHv"/>
<constraint firstItem="CAb-kL-2uK"
firstAttribute="firstBaseline" secondItem="26" secondAttribute="firstBaseline"
id="Kfn-D7-aFG"/>
<constraint firstItem="pat-NC-2oO"
firstAttribute="firstBaseline" secondItem="26" secondAttribute="firstBaseline"
id="MbR-Li-of3"/>
<constraint firstItem="26"
firstAttribute="trailing" secondItem="9" secondAttribute="trailing"
id="Pa9-Dg-HDo"/>
@@ -193,7 +194,6 @@
<constraint firstItem="13"
firstAttribute="leading" secondItem="9" secondAttribute="trailing" constant="8"
symbolic="YES" id="iJT-sy-v0J"/>
<constraint firstItem="30"
firstAttribute="top" secondItem="13" secondAttribute="bottom" constant="8"
symbolic="YES" id="lGB-0X-jac"/>
<constraint firstAttribute="trailing"
relation="greaterThanOrEqual" secondItem="pat-NC-2oO"
secondAttribute="trailing" constant="20" symbolic="YES" id="qJp-gL-u6X"/>
- <constraint firstItem="pat-NC-2oO"
firstAttribute="top" secondItem="28" secondAttribute="bottom" constant="8"
symbolic="YES" id="qsy-mn-Ocd"/>
<constraint firstItem="13"
firstAttribute="top" secondItem="xml-gy-Une" secondAttribute="top"
constant="10" id="rs0-jG-GnG"/>
<constraint firstItem="25"
firstAttribute="leading" relation="greaterThanOrEqual" secondItem="xml-gy-Une"
secondAttribute="leading" constant="10" id="yuh-QM-CcU"/>
</constraints>
@@ -241,7 +241,7 @@
</constraints>
</view>
</box>
- <button translatesAutoresizingMaskIntoConstraints="NO"
id="138">
+ <button verticalHuggingPriority="749"
translatesAutoresizingMaskIntoConstraints="NO" id="138">
<rect key="frame" x="157" y="235" width="174"
height="20"/>
<buttonCell key="cell" type="check" title="Distinct
page transitions" bezelStyle="regularSquare" imagePosition="left"
alignment="left" inset="2" id="445">
<behavior key="behavior" changeContents="YES"
doesNotDimImage="YES" lightByContents="YES"/>
Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m 2026-10-23 14:28:53 UTC (rev
16701)
+++ trunk/SKMainWindowController_FullScreen.m 2026-10-23 16:16:11 UTC (rev
16702)
@@ -79,6 +79,7 @@
#define SKShowToolbarInFullScreenKey @"SKShowToolbarInFullScreen"
#define SKShowSidePanesInFullScreenKey @"SKShowSidePanesInFullScreen"
#define SKResizablePresentationKey @"SKResizablePresentation"
+#define SKPreferExternalDisplayForPresentationKey
@"SKPreferExternalDisplayForPresentation"
#define AppleMenuBarVisibleInFullscreenKey @"AppleMenuBarVisibleInFullscreen"
@@ -140,35 +141,43 @@
#pragma mark Presentation Support Methods
-- (NSScreen *)screenForPresentationWindowAvoidingScreen:(NSScreen
*)screenToAvoid {
+- (NSScreen *)screenForPresentationWindowAvoidingScreen:(NSScreen
*)screenToAvoid preferExternal:(BOOL)preferExternal {
NSScreen *mainScreen = [savedNormalWindow screen];
- NSArray *allScreens = [NSScreen screens];
- if ([allScreens count] > 1) {
- NSMutableDictionary *screens = [NSMutableDictionary dictionary];
- NSMutableArray *screenNumbers = [NSMutableArray array];
- NSNumber *avoidScreenNumber = nil;
- NSNumber *mainScreenNumber = nil;
- for (NSScreen *aScreen in allScreens) {
- NSDictionary *deviceDescription = [aScreen deviceDescription];
- if ([deviceDescription objectForKey:NSDeviceIsScreen] == nil)
- continue;
- NSNumber *aScreenNumber = [deviceDescription
objectForKey:@"NSScreenNumber"];
- CGDirectDisplayID displayID = (CGDirectDisplayID)[aScreenNumber
unsignedIntValue];
- BOOL isBuiltin = screenToAvoid == nil && avoidScreenNumber == nil
&& CGDisplayIsBuiltin(displayID);
- displayID = CGDisplayMirrorsDisplay(displayID);
- if (displayID == kCGNullDirectDisplay) {
- [screenNumbers addObject:aScreenNumber];
- [screens setObject:aScreen forKey:aScreenNumber];
+ if (screenToAvoid || preferExternal) {
+ NSArray *allScreens = [NSScreen screens];
+ if ([allScreens count] > 1) {
+ NSMutableDictionary *screens = [NSMutableDictionary dictionary];
+ NSMutableArray *screenNumbers = [NSMutableArray array];
+ NSNumber *avoidScreenNumber = nil;
+ NSNumber *builtinScreenNumber = nil;
+ NSNumber *mainScreenNumber = nil;
+ for (NSScreen *aScreen in allScreens) {
+ NSDictionary *deviceDescription = [aScreen deviceDescription];
+ if ([deviceDescription objectForKey:NSDeviceIsScreen] == nil)
+ continue;
+ NSNumber *aScreenNumber = [deviceDescription
objectForKey:@"NSScreenNumber"];
+ CGDirectDisplayID displayID =
(CGDirectDisplayID)[aScreenNumber unsignedIntValue];
+ CGDirectDisplayID primaryDisplayID =
CGDisplayMirrorsDisplay(displayID);
+ if (primaryDisplayID == kCGNullDirectDisplay) {
+ [screenNumbers addObject:aScreenNumber];
+ [screens setObject:aScreen forKey:aScreenNumber];
+ } else {
+ aScreenNumber = [NSNumber
numberWithUnsignedInt:primaryDisplayID];
+ }
+ if (avoidScreenNumber == nil && [aScreen
isEqual:screenToAvoid])
+ avoidScreenNumber = aScreenNumber;
+ if (preferExternal && builtinScreenNumber == nil &&
CGDisplayIsBuiltin(displayID))
+ builtinScreenNumber = aScreenNumber;
+ if (mainScreenNumber == nil && [aScreen isEqual:mainScreen])
+ mainScreenNumber = aScreenNumber;
}
- if (avoidScreenNumber == nil && (isBuiltin || [aScreen
isEqual:screenToAvoid]))
- avoidScreenNumber = displayID == kCGNullDirectDisplay ?
aScreenNumber : [NSNumber numberWithUnsignedInt:displayID];
- if ([aScreen isEqual:mainScreen])
- mainScreenNumber = displayID == kCGNullDirectDisplay ?
aScreenNumber : [NSNumber numberWithUnsignedInt:displayID];
+ if (avoidScreenNumber)
+ [screenNumbers removeObject:avoidScreenNumber];
+ if (builtinScreenNumber && [screenNumbers count] > 1)
+ [screenNumbers removeObject:builtinScreenNumber];
+ if ([screenNumbers count] > 0 && [screenNumbers
containsObject:mainScreenNumber] == NO)
+ return [screens objectForKey:[screenNumbers firstObject]];
}
- if (avoidScreenNumber)
- [screenNumbers removeObject:avoidScreenNumber];
- if ([screenNumbers count] > 0 && [screenNumbers
containsObject:mainScreenNumber] == NO)
- return [screens objectForKey:[screenNumbers firstObject]];
}
return mainScreen;
}
@@ -192,7 +201,7 @@
[preview setDelegate:self];
- NSScreen *screen = [self
screenForPresentationWindowAvoidingScreen:presentationScreen];
+ NSScreen *screen = [self
screenForPresentationWindowAvoidingScreen:presentationScreen preferExternal:NO];
[preview setPdfDocument:[pdfView document] previewPageNumber:pageIndex
displayOnScreen:screen];
[[self document] addWindowController:preview];
@@ -277,12 +286,13 @@
interactionMode = SKPresentationMode;
NSScreen *screen = nil;
+ BOOL preferExternal = [[NSUserDefaults standardUserDefaults]
boolForKey:SKPreferExternalDisplayForPresentationKey];
if ([self presentationNotesDocument]) {
if ([self presentationNotesDocument] != [self document])
screen = [[[self presentationNotesDocument] primaryWindow] screen];
- screen = [self screenForPresentationWindowAvoidingScreen:screen];
+ screen = [self screenForPresentationWindowAvoidingScreen:screen
preferExternal:preferExternal];
} else {
- screen = [normalWindow screen];
+ screen = [self screenForPresentationWindowAvoidingScreen:nil
preferExternal:preferExternal];
}
NSWindow *presentationWindow = [[SKFullScreenWindow alloc]
initWithContentRect:[screen frame]];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit