You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(23) |
Apr
(254) |
May
(252) |
Jun
(209) |
Jul
(198) |
Aug
(192) |
Sep
(207) |
Oct
(120) |
Nov
(179) |
Dec
(52) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(48) |
Feb
(69) |
Mar
(129) |
Apr
(250) |
May
(113) |
Jun
(177) |
Jul
(228) |
Aug
(155) |
Sep
(218) |
Oct
(185) |
Nov
(109) |
Dec
(88) |
2009 |
Jan
(83) |
Feb
(39) |
Mar
(70) |
Apr
(47) |
May
(48) |
Jun
(67) |
Jul
(61) |
Aug
(97) |
Sep
(221) |
Oct
(141) |
Nov
(70) |
Dec
(61) |
2010 |
Jan
(45) |
Feb
(76) |
Mar
(178) |
Apr
(106) |
May
(57) |
Jun
(32) |
Jul
(64) |
Aug
(98) |
Sep
(96) |
Oct
(19) |
Nov
(34) |
Dec
(117) |
2011 |
Jan
(55) |
Feb
(48) |
Mar
(64) |
Apr
(21) |
May
(39) |
Jun
(53) |
Jul
(99) |
Aug
(56) |
Sep
(39) |
Oct
(26) |
Nov
(19) |
Dec
(69) |
2012 |
Jan
(17) |
Feb
(40) |
Mar
(17) |
Apr
|
May
(2) |
Jun
(8) |
Jul
(2) |
Aug
(10) |
Sep
(10) |
Oct
(38) |
Nov
(48) |
Dec
(70) |
2013 |
Jan
(43) |
Feb
(47) |
Mar
(39) |
Apr
(37) |
May
(25) |
Jun
(6) |
Jul
(20) |
Aug
(49) |
Sep
(33) |
Oct
(34) |
Nov
(75) |
Dec
(6) |
2014 |
Jan
(32) |
Feb
(10) |
Mar
(17) |
Apr
|
May
|
Jun
(26) |
Jul
(5) |
Aug
|
Sep
(4) |
Oct
(23) |
Nov
(80) |
Dec
(48) |
2015 |
Jan
(80) |
Feb
(50) |
Mar
(58) |
Apr
(20) |
May
(11) |
Jun
(16) |
Jul
(24) |
Aug
(27) |
Sep
(56) |
Oct
(30) |
Nov
(16) |
Dec
(6) |
2016 |
Jan
(31) |
Feb
(14) |
Mar
(23) |
Apr
(17) |
May
(40) |
Jun
(12) |
Jul
(17) |
Aug
(9) |
Sep
(32) |
Oct
(36) |
Nov
(23) |
Dec
(9) |
2017 |
Jan
(37) |
Feb
(23) |
Mar
(65) |
Apr
(22) |
May
(6) |
Jun
(3) |
Jul
|
Aug
|
Sep
(3) |
Oct
(22) |
Nov
(63) |
Dec
(71) |
2018 |
Jan
(83) |
Feb
(21) |
Mar
(35) |
Apr
(44) |
May
(14) |
Jun
(12) |
Jul
(8) |
Aug
(18) |
Sep
(10) |
Oct
(145) |
Nov
(144) |
Dec
(76) |
2019 |
Jan
(18) |
Feb
(28) |
Mar
(5) |
Apr
(208) |
May
(291) |
Jun
(158) |
Jul
(27) |
Aug
(8) |
Sep
(10) |
Oct
(83) |
Nov
(41) |
Dec
(31) |
2020 |
Jan
(16) |
Feb
(46) |
Mar
(100) |
Apr
(78) |
May
(69) |
Jun
(71) |
Jul
(28) |
Aug
(131) |
Sep
(176) |
Oct
(89) |
Nov
(147) |
Dec
(19) |
2021 |
Jan
(19) |
Feb
(25) |
Mar
(91) |
Apr
(98) |
May
(14) |
Jun
(44) |
Jul
(8) |
Aug
(3) |
Sep
(38) |
Oct
(57) |
Nov
(97) |
Dec
(74) |
2022 |
Jan
(89) |
Feb
(47) |
Mar
(15) |
Apr
(50) |
May
(54) |
Jun
(56) |
Jul
(80) |
Aug
(12) |
Sep
(11) |
Oct
(60) |
Nov
(48) |
Dec
(4) |
2023 |
Jan
(75) |
Feb
(49) |
Mar
(84) |
Apr
(24) |
May
(13) |
Jun
(74) |
Jul
(32) |
Aug
(66) |
Sep
(50) |
Oct
(38) |
Nov
(105) |
Dec
(181) |
2024 |
Jan
(21) |
Feb
(49) |
Mar
(77) |
Apr
(84) |
May
(20) |
Jun
(71) |
Jul
(53) |
Aug
(33) |
Sep
(54) |
Oct
(124) |
Nov
(151) |
Dec
(73) |
2025 |
Jan
(61) |
Feb
(17) |
Mar
(136) |
Apr
(72) |
May
(200) |
Jun
(238) |
Jul
(91) |
Aug
(8) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <ho...@us...> - 2025-05-26 15:59:35
|
Revision: 15299 http://sourceforge.net/p/skim-app/code/15299 Author: hofman Date: 2025-05-26 15:59:32 +0000 (Mon, 26 May 2025) Log Message: ----------- check earlier Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-05-26 15:58:46 UTC (rev 15298) +++ trunk/SKMainWindowController.m 2025-05-26 15:59:32 UTC (rev 15299) @@ -560,9 +560,9 @@ [savedNormalSetup setDictionary:setup]; } else { - NSString *rectString = [setup objectForKey:MAINWINDOWFRAME_KEY]; - if (rectString) { - if ([self interactionMode] != SKFullScreenMode) + if ([self interactionMode] != SKFullScreenMode) { + NSString *rectString = [setup objectForKey:MAINWINDOWFRAME_KEY]; + if (rectString) [mainWindow setFrame:NSRectFromString(rectString) display:[mainWindow isVisible]]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 15:58:47
|
Revision: 15298 http://sourceforge.net/p/skim-app/code/15298 Author: hofman Date: 2025-05-26 15:58:46 +0000 (Mon, 26 May 2025) Log Message: ----------- wee already set the window frame implicitly in full screen Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-05-26 15:39:33 UTC (rev 15297) +++ trunk/SKMainWindowController.m 2025-05-26 15:58:46 UTC (rev 15298) @@ -562,9 +562,7 @@ NSString *rectString = [setup objectForKey:MAINWINDOWFRAME_KEY]; if (rectString) { - if ([self interactionMode] == SKFullScreenMode) - [savedNormalSetup setObject:rectString forKey:MAINWINDOWFRAME_KEY]; - else + if ([self interactionMode] != SKFullScreenMode) [mainWindow setFrame:NSRectFromString(rectString) display:[mainWindow isVisible]]; } @@ -1782,6 +1780,7 @@ NSView *contentView = [findBar superview]; NSLayoutConstraint *barTopConstraint = [findController topConstraint]; CGFloat barHeight = [findController height]; + NSWindow *window = [self window]; if (mwcFlags.fullSizeContent) findBarTopConstraint = nil; @@ -1788,8 +1787,8 @@ else findBarTopConstraint = [[pdfSplitView topAnchor] constraintEqualToAnchor:[contentView topAnchor]]; - if ([[mainWindow firstResponder] isDescendantOf:findBar]) - [mainWindow makeFirstResponder:pdfView]; + if ([[window firstResponder] isDescendantOf:findBar]) + [window makeFirstResponder:pdfView]; if (mwcFlags.fullSizeContent) { [[pdfView scrollView] setAutomaticallyAdjustsContentInsets:YES]; @@ -1808,7 +1807,7 @@ completionHandler:^{ [findBar removeFromSuperview]; [findBarTopConstraint setActive:YES]; - [mainWindow recalculateKeyViewLoop]; + [window recalculateKeyViewLoop]; mwcFlags.isAnimatingFindBar = NO; }]; @@ -1816,7 +1815,7 @@ [findBar removeFromSuperview]; [findBarTopConstraint setActive:YES]; [contentView layoutSubtreeIfNeeded]; - [mainWindow recalculateKeyViewLoop]; + [window recalculateKeyViewLoop]; } } @@ -1872,7 +1871,7 @@ [[barTopConstraint animator] setConstant:0.0]; } completionHandler:^{ - [mainWindow recalculateKeyViewLoop]; + [[self window] recalculateKeyViewLoop]; [findField selectText:nil]; mwcFlags.isAnimatingFindBar = NO; @@ -1879,7 +1878,7 @@ }]; } else { [contentView layoutSubtreeIfNeeded]; - [mainWindow recalculateKeyViewLoop]; + [[self window] recalculateKeyViewLoop]; [findField selectText:nil]; } } @@ -2636,7 +2635,7 @@ } else if (context == &SKMainWindowContentLayoutObservationContext) { - CGFloat titleHeight = NSHeight([mainWindow frame]) - NSHeight([mainWindow contentLayoutRect]); + CGFloat titleHeight = NSHeight([object frame]) - NSHeight([object contentLayoutRect]); if (fabs(titleHeight - titleBarHeight) > 0.0) { titleBarHeight = titleHeight; [rightSideController setTopInset:titleBarHeight]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 15:39:36
|
Revision: 15297 http://sourceforge.net/p/skim-app/code/15297 Author: hofman Date: 2025-05-26 15:39:33 +0000 (Mon, 26 May 2025) Log Message: ----------- don't set window frame from setup when in full screen mode Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-05-26 15:25:06 UTC (rev 15296) +++ trunk/SKMainWindowController.m 2025-05-26 15:39:33 UTC (rev 15297) @@ -561,8 +561,12 @@ } else { NSString *rectString = [setup objectForKey:MAINWINDOWFRAME_KEY]; - if (rectString) - [mainWindow setFrame:NSRectFromString(rectString) display:[mainWindow isVisible]]; + if (rectString) { + if ([self interactionMode] == SKFullScreenMode) + [savedNormalSetup setObject:rectString forKey:MAINWINDOWFRAME_KEY]; + else + [mainWindow setFrame:NSRectFromString(rectString) display:[mainWindow isVisible]]; + } NSNumber *leftWidth = [setup objectForKey:LEFTSIDEPANEWIDTH_KEY]; NSNumber *rightWidth = [setup objectForKey:RIGHTSIDEPANEWIDTH_KEY]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 15:25:09
|
Revision: 15296 http://sourceforge.net/p/skim-app/code/15296 Author: hofman Date: 2025-05-26 15:25:06 +0000 (Mon, 26 May 2025) Log Message: ----------- convenience nswindow methods to show/hide windows wwithout implicit animation Modified Paths: -------------- trunk/NSWindow_SKExtensions.h trunk/NSWindow_SKExtensions.m trunk/SKMainWindowController_FullScreen.m trunk/SKSnapshotWindowController.m Modified: trunk/NSWindow_SKExtensions.h =================================================================== --- trunk/NSWindow_SKExtensions.h 2025-05-26 14:45:06 UTC (rev 15295) +++ trunk/NSWindow_SKExtensions.h 2025-05-26 15:25:06 UTC (rev 15296) @@ -49,6 +49,9 @@ - (NSImageView *)addImageViewWithImage:(nullable NSImage *)image; +- (void)orderFrontWithoutAnimation; +- (void)orderOutWithoutAnimation; + @end NS_ASSUME_NONNULL_END Modified: trunk/NSWindow_SKExtensions.m =================================================================== --- trunk/NSWindow_SKExtensions.m 2025-05-26 14:45:06 UTC (rev 15295) +++ trunk/NSWindow_SKExtensions.m 2025-05-26 15:25:06 UTC (rev 15296) @@ -147,6 +147,20 @@ return imageView; } +- (void)orderFrontWithoutAnimation { + NSWindowAnimationBehavior animationBehavior = [self animationBehavior]; + [self setAnimationBehavior:NSWindowAnimationBehaviorNone]; + [self orderFront:nil]; + [self setAnimationBehavior:animationBehavior]; +} + +- (void)orderOutWithoutAnimation { + NSWindowAnimationBehavior animationBehavior = [self animationBehavior]; + [self setAnimationBehavior:NSWindowAnimationBehaviorNone]; + [self orderOut:nil]; + [self setAnimationBehavior:animationBehavior]; +} + - (BOOL)isRestorable { return NO; } @end Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-26 14:45:06 UTC (rev 15295) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-26 15:25:06 UTC (rev 15296) @@ -298,9 +298,7 @@ if ([NSScreen screenForWindowHasMenuBar:presentationWindow]) [NSApp setPresentationOptions:NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar]; - [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]; - [mainWindow orderOut:nil]; - [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorDefault]; + [mainWindow orderOutWithoutAnimation]; [mainWindow setAlphaValue:1.0]; if ([self hasOverview]) [self hideOverviewAnimating:NO]; @@ -380,22 +378,20 @@ BOOL moveToTab = [[tabGroup windows] count] > 0; [mainWindow setAlphaValue:0.0]; - [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]; if (NSPointInRect(SKCenterPoint([mainWindow frame]), [[presentationWindow screen] frame]) && moveToTab == NO) { NSWindowCollectionBehavior collectionBehavior = [mainWindow collectionBehavior]; // trick to make sure the main window shows up in the same space as the fullscreen window [mainWindow setCollectionBehavior:collectionBehavior | NSWindowCollectionBehaviorMoveToActiveSpace]; - [mainWindow makeKeyAndOrderFront:nil]; + [mainWindow orderFrontWithoutAnimation]; dispatch_async(dispatch_get_main_queue(), ^{ [mainWindow setCollectionBehavior:collectionBehavior]; }); } else { - [mainWindow makeKeyAndOrderFront:nil]; + [mainWindow orderFrontWithoutAnimation]; } if ([pdfView window] == mainWindow) [mainWindow makeFirstResponder:pdfView]; [mainWindow setDelegate:self]; [mainWindow makeKeyWindow]; - [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorDefault]; - + [NSApp removeWindowsItem:presentationWindow]; [presentationWindow setLevel:NSPopUpMenuWindowLevel]; Modified: trunk/SKSnapshotWindowController.m =================================================================== --- trunk/SKSnapshotWindowController.m 2025-05-26 14:45:06 UTC (rev 15295) +++ trunk/SKSnapshotWindowController.m 2025-05-26 15:25:06 UTC (rev 15296) @@ -268,9 +268,7 @@ if (openType == SKSnapshotOpenPreview) { [[self window] setAlphaValue:0.0]; - [[self window] setAnimationBehavior:NSWindowAnimationBehaviorNone]; - [[self window] orderFront:nil]; - [[self window] setAnimationBehavior:NSWindowAnimationBehaviorDefault]; + [[self window] orderFrontWithoutAnimation]; } else if ([self hasWindow]) { [self showWindow:nil]; } @@ -662,9 +660,7 @@ [miniaturizeWindow orderFront:nil]; if (miniaturize) { - [window setAnimationBehavior:NSWindowAnimationBehaviorNone]; - [window orderOut:nil]; - [window setAnimationBehavior:NSWindowAnimationBehaviorDefault]; + [window orderOutWithoutAnimation]; } animating = YES; @@ -676,10 +672,8 @@ } completionHandler:^{ if (miniaturize == NO) { - [window setAnimationBehavior:NSWindowAnimationBehaviorNone]; - [window orderFront:nil]; + [window orderFrontWithoutAnimation]; [self updateWindowLevel]; - [window setAnimationBehavior:NSWindowAnimationBehaviorDefault]; } [miniaturizeWindow orderOut:nil]; animating = NO; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 14:45:13
|
Revision: 15295 http://sourceforge.net/p/skim-app/code/15295 Author: hofman Date: 2025-05-26 14:45:06 +0000 (Mon, 26 May 2025) Log Message: ----------- fade in presentation preview, mistakenly removed Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-26 14:14:05 UTC (rev 15294) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-26 14:45:06 UTC (rev 15295) @@ -291,6 +291,7 @@ [[presentationWindow animator] setAlphaValue:1.0]; if (shouldFadeOut) [[mainWindow animator] setAlphaValue:0.0]; + [[[presentationPreview window] animator] setAlphaValue:1.0]; } completionHandler:^{ // only hide the dock and menubar when the presentation window is on the primary screen, otherwise no need to block main menu and dock This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 14:14:09
|
Revision: 15294 http://sourceforge.net/p/skim-app/code/15294 Author: hofman Date: 2025-05-26 14:14:05 +0000 (Mon, 26 May 2025) Log Message: ----------- prevent fullscreen/presentation switching during animation Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-26 14:09:57 UTC (rev 15293) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-26 14:14:05 UTC (rev 15294) @@ -283,6 +283,8 @@ if (activity == nil) activity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated | NSActivityIdleDisplaySleepDisabled | NSActivityIdleSystemSleepDisabled reason:@"Presentation"]; + [touchBarController interactionModeChanged]; + [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { [context setDuration:PRESENTATION_DURATION]; [context setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; @@ -314,8 +316,6 @@ [presentationView didOpen]; - [touchBarController interactionModeChanged]; - mwcFlags.isSwitchingFullScreen = 0; }]; } @@ -415,8 +415,6 @@ [touchBarController interactionModeChanged]; - mwcFlags.isSwitchingFullScreen = 0; - [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { [context setDuration:PRESENTATION_DURATION]; [context setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; @@ -437,6 +435,8 @@ [presentationPreview close]; } + mwcFlags.isSwitchingFullScreen = 0; + if (mwcFlags.wantsPresentationOrFullScreen) { mwcFlags.wantsPresentationOrFullScreen = 0; [self enterFullscreen]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 14:10:00
|
Revision: 15293 http://sourceforge.net/p/skim-app/code/15293 Author: hofman Date: 2025-05-26 14:09:57 +0000 (Mon, 26 May 2025) Log Message: ----------- use already existing property Modified Paths: -------------- trunk/SKNotesDocument.h trunk/SKNotesDocument.m Modified: trunk/SKNotesDocument.h =================================================================== --- trunk/SKNotesDocument.h 2025-05-26 09:35:45 UTC (rev 15292) +++ trunk/SKNotesDocument.h 2025-05-26 14:09:57 UTC (rev 15293) @@ -73,7 +73,6 @@ @property (nonatomic, nullable, strong) IBOutlet NSSearchField *searchField; @property (nonatomic, readonly,) NSArray<PDFAnnotation *> *notes; @property (nonatomic, nullable, readonly) PDFDocument *pdfDocument; -@property (nonatomic, nullable, readonly) NSWindow *window; @property (nonatomic, nullable, strong) NSURL *sourceFileURL; - (IBAction)openPDF:(nullable id)sender; Modified: trunk/SKNotesDocument.m =================================================================== --- trunk/SKNotesDocument.m 2025-05-26 09:35:45 UTC (rev 15292) +++ trunk/SKNotesDocument.m 2025-05-26 14:09:57 UTC (rev 15293) @@ -112,7 +112,6 @@ @implementation SKNotesDocument @synthesize outlineView, statusBar, arrayController, searchField, notes, pdfDocument, sourceFileURL; -@dynamic window; - (instancetype)init { self = [super init]; @@ -135,11 +134,6 @@ return @"NotesDocument"; } -- (NSWindow *)window { - NSArray *wcs = [self windowControllers]; - return [wcs count] > 0 ? [[wcs objectAtIndex:0] window] : nil; -} - - (void)showWindows{ NSWindowController *wc = [[self windowControllers] lastObject]; BOOL wasVisible = [wc isWindowLoaded] && [[wc window] isVisible]; @@ -602,12 +596,12 @@ } - (IBAction)toggleFullscreen:(id)sender { - [[self window] toggleFullScreen:sender]; + [[self mainWindow] toggleFullScreen:sender]; } - (void)performFindPanelAction:(id)sender { if ([sender tag] == NSFindPanelActionShowFindPanel) { - NSToolbar *toolbar = [[self window] toolbar]; + NSToolbar *toolbar = [[self mainWindow] toolbar]; if ([[[toolbar items] valueForKey:@"itemIdentifier"] containsObject:SKNotesDocumentSearchToolbarItemIdentifier] == NO) [toolbar insertItemWithItemIdentifier:SKNotesDocumentSearchToolbarItemIdentifier atIndex:0]; if ([toolbar displayMode] == NSToolbarDisplayModeLabelOnly) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 09:35:49
|
Revision: 15292 http://sourceforge.net/p/skim-app/code/15292 Author: hofman Date: 2025-05-26 09:35:45 +0000 (Mon, 26 May 2025) Log Message: ----------- Implement interactionMode accesors in document category, no need for scriptingInteractionMode as separate property Modified Paths: -------------- trunk/NSDocument_SKExtensions.h trunk/NSDocument_SKExtensions.m trunk/SKMainDocument.m trunk/SKNotesDocument.m trunk/Skim.sdef Modified: trunk/NSDocument_SKExtensions.h =================================================================== --- trunk/NSDocument_SKExtensions.h 2025-05-26 09:12:47 UTC (rev 15291) +++ trunk/NSDocument_SKExtensions.h 2025-05-26 09:35:45 UTC (rev 15292) @@ -60,7 +60,7 @@ @property (nonatomic, nullable, readonly) NSMenu *notesMenu; -@property (nonatomic, readonly) SKInteractionMode interactionMode; +@property (nonatomic) SKInteractionMode interactionMode; #pragma mark Document Setup @@ -125,7 +125,6 @@ @property (nonatomic, nullable, readonly) NSDictionary<NSString *, id> *documentAttributes; @property (nonatomic, readonly, getter=isPDFDocument) BOOL PDFDocument; @property (nonatomic, readonly) NSInteger toolMode; -@property (nonatomic) NSInteger scriptingInteractionMode; @property (nonatomic, nullable, readonly) NSDocument *presentationNotesDocument; @property (nonatomic, readonly) NSInteger presentationNotesOffset; @property (nonatomic, nullable, readonly) id readingBar; Modified: trunk/NSDocument_SKExtensions.m =================================================================== --- trunk/NSDocument_SKExtensions.m 2025-05-26 09:12:47 UTC (rev 15291) +++ trunk/NSDocument_SKExtensions.m 2025-05-26 09:35:45 UTC (rev 15292) @@ -95,6 +95,11 @@ return ([[self mainWindow] styleMask] & NSWindowStyleMaskFullScreen) == 0 ? SKNormalMode : SKFullScreenMode; } +- (void)setInteractionMode:(SKInteractionMode)mode { + if (mode != [self interactionMode] && (mode == SKFullScreenMode || mode == SKNormalMode)) + [[self mainWindow] toggleFullScreen:nil]; +} + #pragma mark Document Setup - (void)saveRecentDocumentInfo { @@ -362,10 +367,6 @@ - (NSInteger)toolMode { return 0; } -- (NSInteger)scriptingInteractionMode { return [self interactionMode]; } - -- (void)setScriptingInteractionMode:(NSInteger)mode {} - - (NSDocument *)presentationNotesDocument { return nil; } - (NSInteger)presentationNotesOffset { return 0; } Modified: trunk/SKMainDocument.m =================================================================== --- trunk/SKMainDocument.m 2025-05-26 09:12:47 UTC (rev 15291) +++ trunk/SKMainDocument.m 2025-05-26 09:35:45 UTC (rev 15292) @@ -1840,7 +1840,7 @@ [[self pdfView] setToolMode:newToolMode]; } -- (void)setScriptingInteractionMode:(NSInteger)mode { +- (void)setInteractionMode:(SKInteractionMode)mode { if (mode == SKNormalMode) { if ([[self mainWindowController] canExitFullscreen]) [[self mainWindowController] exitFullscreen]; Modified: trunk/SKNotesDocument.m =================================================================== --- trunk/SKNotesDocument.m 2025-05-26 09:12:47 UTC (rev 15291) +++ trunk/SKNotesDocument.m 2025-05-26 09:35:45 UTC (rev 15292) @@ -1014,9 +1014,4 @@ [outlineView selectRowIndexes:rowIndexes byExtendingSelection:NO]; } -- (void)setScriptingInteractionMode:(NSInteger)mode { - if (mode != [self interactionMode] && (mode == SKFullScreenMode || mode == SKNormalMode)) - [self toggleFullscreen:nil]; -} - @end Modified: trunk/Skim.sdef =================================================================== --- trunk/Skim.sdef 2025-05-26 09:12:47 UTC (rev 15291) +++ trunk/Skim.sdef 2025-05-26 09:35:45 UTC (rev 15292) @@ -723,7 +723,7 @@ </property> <property name="interaction mode" type="interaction mode type" code="IMod" description="The interaction mode for the document."> - <cocoa key="scriptingInteractionMode"/> + <cocoa key="interactionMode"/> </property> <property name="containing PDF" type="boolean" code="iPDF" access="r" description="Is this a PDF document?"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-26 09:12:49
|
Revision: 15291 http://sourceforge.net/p/skim-app/code/15291 Author: hofman Date: 2025-05-26 09:12:47 +0000 (Mon, 26 May 2025) Log Message: ----------- should be no need to set window level Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 16:03:44 UTC (rev 15290) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-26 09:12:47 UTC (rev 15291) @@ -279,8 +279,6 @@ [self setWindow:presentationWindow]; - [presentationWindow setLevel:NSPopUpMenuWindowLevel]; - // prevent sleep if (activity == nil) activity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated | NSActivityIdleDisplaySleepDisabled | NSActivityIdleSystemSleepDisabled reason:@"Presentation"]; @@ -381,7 +379,6 @@ BOOL moveToTab = [[tabGroup windows] count] > 0; [mainWindow setAlphaValue:0.0]; - [mainWindow setLevel:NSNormalWindowLevel]; [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]; if (NSPointInRect(SKCenterPoint([mainWindow frame]), [[presentationWindow screen] frame]) && moveToTab == NO) { NSWindowCollectionBehavior collectionBehavior = [mainWindow collectionBehavior]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 16:03:46
|
Revision: 15290 http://sourceforge.net/p/skim-app/code/15290 Author: hofman Date: 2025-05-25 16:03:44 +0000 (Sun, 25 May 2025) Log Message: ----------- define readonly accessor for interactionMode on document classes Modified Paths: -------------- trunk/NSDocument_SKExtensions.h trunk/NSDocument_SKExtensions.m trunk/SKMainDocument.m trunk/SKNotesDocument.h trunk/SKNotesDocument.m Modified: trunk/NSDocument_SKExtensions.h =================================================================== --- trunk/NSDocument_SKExtensions.h 2025-05-25 15:49:01 UTC (rev 15289) +++ trunk/NSDocument_SKExtensions.h 2025-05-25 16:03:44 UTC (rev 15290) @@ -60,6 +60,8 @@ @property (nonatomic, nullable, readonly) NSMenu *notesMenu; +@property (nonatomic, readonly) SKInteractionMode interactionMode; + #pragma mark Document Setup - (void)saveRecentDocumentInfo; @@ -123,7 +125,7 @@ @property (nonatomic, nullable, readonly) NSDictionary<NSString *, id> *documentAttributes; @property (nonatomic, readonly, getter=isPDFDocument) BOOL PDFDocument; @property (nonatomic, readonly) NSInteger toolMode; -@property (nonatomic, readonly) NSInteger scriptingInteractionMode; +@property (nonatomic) NSInteger scriptingInteractionMode; @property (nonatomic, nullable, readonly) NSDocument *presentationNotesDocument; @property (nonatomic, readonly) NSInteger presentationNotesOffset; @property (nonatomic, nullable, readonly) id readingBar; Modified: trunk/NSDocument_SKExtensions.m =================================================================== --- trunk/NSDocument_SKExtensions.m 2025-05-25 15:49:01 UTC (rev 15289) +++ trunk/NSDocument_SKExtensions.m 2025-05-25 16:03:44 UTC (rev 15290) @@ -91,6 +91,10 @@ - (NSMenu *)notesMenu { return nil; } +- (SKInteractionMode)interactionMode { + return ([[self mainWindow] styleMask] & NSWindowStyleMaskFullScreen) == 0 ? SKNormalMode : SKFullScreenMode; +} + #pragma mark Document Setup - (void)saveRecentDocumentInfo { @@ -358,8 +362,10 @@ - (NSInteger)toolMode { return 0; } -- (NSInteger)scriptingInteractionMode { return 0; } +- (NSInteger)scriptingInteractionMode { return [self interactionMode]; } +- (void)setScriptingInteractionMode:(NSInteger)mode {} + - (NSDocument *)presentationNotesDocument { return nil; } - (NSInteger)presentationNotesOffset { return 0; } Modified: trunk/SKMainDocument.m =================================================================== --- trunk/SKMainDocument.m 2025-05-25 15:49:01 UTC (rev 15289) +++ trunk/SKMainDocument.m 2025-05-25 16:03:44 UTC (rev 15290) @@ -266,6 +266,10 @@ return option; } +- (SKInteractionMode)interactionMode { + return [[self mainWindowController] interactionMode]; +} + #pragma mark Writing - (NSString *)fileType { @@ -1836,10 +1840,6 @@ [[self pdfView] setToolMode:newToolMode]; } -- (NSInteger)scriptingInteractionMode { - return [[self mainWindowController] interactionMode]; -} - - (void)setScriptingInteractionMode:(NSInteger)mode { if (mode == SKNormalMode) { if ([[self mainWindowController] canExitFullscreen]) Modified: trunk/SKNotesDocument.h =================================================================== --- trunk/SKNotesDocument.h 2025-05-25 15:49:01 UTC (rev 15289) +++ trunk/SKNotesDocument.h 2025-05-25 16:03:44 UTC (rev 15290) @@ -75,7 +75,6 @@ @property (nonatomic, nullable, readonly) PDFDocument *pdfDocument; @property (nonatomic, nullable, readonly) NSWindow *window; @property (nonatomic, nullable, strong) NSURL *sourceFileURL; -@property (nonatomic, readonly) SKInteractionMode interactionMode; - (IBAction)openPDF:(nullable id)sender; - (IBAction)searchNotes:(nullable id)sender; Modified: trunk/SKNotesDocument.m =================================================================== --- trunk/SKNotesDocument.m 2025-05-25 15:49:01 UTC (rev 15289) +++ trunk/SKNotesDocument.m 2025-05-25 16:03:44 UTC (rev 15290) @@ -112,7 +112,7 @@ @implementation SKNotesDocument @synthesize outlineView, statusBar, arrayController, searchField, notes, pdfDocument, sourceFileURL; -@dynamic window, interactionMode; +@dynamic window; - (instancetype)init { self = [super init]; @@ -449,10 +449,6 @@ return [super displayName]; } -- (SKInteractionMode)interactionMode { - return ([[self window] styleMask] & NSWindowStyleMaskFullScreen) == 0 ? SKNormalMode : SKFullScreenMode; -} - - (NSArray *)SkimNoteProperties { NSArray *array = [super SkimNoteProperties]; if ([unsupportedNotes count]) @@ -1018,10 +1014,6 @@ [outlineView selectRowIndexes:rowIndexes byExtendingSelection:NO]; } -- (NSInteger)scriptingInteractionMode { - return [self interactionMode]; -} - - (void)setScriptingInteractionMode:(NSInteger)mode { if (mode != [self interactionMode] && (mode == SKFullScreenMode || mode == SKNormalMode)) [self toggleFullscreen:nil]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 15:49:05
|
Revision: 15289 http://sourceforge.net/p/skim-app/code/15289 Author: hofman Date: 2025-05-25 15:49:01 +0000 (Sun, 25 May 2025) Log Message: ----------- do not allow presentation wwhen any document is already in presentation Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 15:45:31 UTC (rev 15288) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 15:49:01 UTC (rev 15289) @@ -452,7 +452,7 @@ } - (BOOL)canEnterPresentation { - return mwcFlags.isSwitchingFullScreen == 0 && [[self pdfDocument] isLocked] == NO && [self interactionMode] != SKPresentationMode; + return mwcFlags.isSwitchingFullScreen == 0 && [[self pdfDocument] isLocked] == NO && [[[[NSDocumentController sharedDocumentController] documents] valueForKeyPath:@"@max.interactionMode"] integerValue] != SKPresentationMode; } - (BOOL)canExitFullscreen { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 15:45:32
|
Revision: 15288 http://sourceforge.net/p/skim-app/code/15288 Author: hofman Date: 2025-05-25 15:45:31 +0000 (Sun, 25 May 2025) Log Message: ----------- remove unused ivar Modified Paths: -------------- trunk/SKPDFView.h Modified: trunk/SKPDFView.h =================================================================== --- trunk/SKPDFView.h 2025-05-25 15:41:47 UTC (rev 15287) +++ trunk/SKPDFView.h 2025-05-25 15:45:31 UTC (rev 15288) @@ -136,7 +136,6 @@ SKToolMode toolMode; SKTemporaryToolMode temporaryToolMode; SKNoteType annotationMode; - SKInteractionMode interactionMode; NSInteger navigationMode; SKNavigationWindow *navWindow; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 15:41:50
|
Revision: 15287 http://sourceforge.net/p/skim-app/code/15287 Author: hofman Date: 2025-05-25 15:41:47 +0000 (Sun, 25 May 2025) Log Message: ----------- code layout Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 15:38:14 UTC (rev 15286) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 15:41:47 UTC (rev 15287) @@ -434,10 +434,12 @@ [presentationWindow orderOut:nil]; [presentationView setPage:nil]; [presentationView setAutoScales:NO]; + if (presentationPreview) { [[presentationPreview window] setAnimationBehavior:NSWindowAnimationBehaviorNone]; [presentationPreview close]; } + if (mwcFlags.wantsPresentationOrFullScreen) { mwcFlags.wantsPresentationOrFullScreen = 0; [self enterFullscreen]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 15:38:18
|
Revision: 15286 http://sourceforge.net/p/skim-app/code/15286 Author: hofman Date: 2025-05-25 15:38:14 +0000 (Sun, 25 May 2025) Log Message: ----------- reset flag later Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:38:38 UTC (rev 15285) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 15:38:14 UTC (rev 15286) @@ -377,10 +377,6 @@ } mwcFlags.thumbnailsUpdatedDuringPresentaton = 0; - mwcFlags.isSwitchingFullScreen = 0; - - [touchBarController interactionModeChanged]; - NSWindowTabGroup *tabGroup = [savedNormalSetup objectForKey:TABGROUP_KEY]; BOOL moveToTab = [[tabGroup windows] count] > 0; @@ -415,10 +411,14 @@ [mainWindow setAlphaValue:1.0]; } + [savedNormalSetup removeAllObjects]; + // the page number may have changed [self updateSubtitle]; - [savedNormalSetup removeAllObjects]; + [touchBarController interactionModeChanged]; + + mwcFlags.isSwitchingFullScreen = 0; [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { [context setDuration:PRESENTATION_DURATION]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 14:38:41
|
Revision: 15285 http://sourceforge.net/p/skim-app/code/15285 Author: hofman Date: 2025-05-25 14:38:38 +0000 (Sun, 25 May 2025) Log Message: ----------- update thumbnails after presentation after setting main window Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:29:16 UTC (rev 15284) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:38:38 UTC (rev 15285) @@ -369,6 +369,8 @@ if (mode != [pdfView extendedDisplayMode]) [pdfView setExtendedDisplayModeAndRewind:mode]; + [self setWindow:mainWindow]; + if (mwcFlags.thumbnailsNeedUpdateAfterPresentaton) { mwcFlags.thumbnailsNeedUpdateAfterPresentaton = 0; [self allThumbnailsNeedUpdate]; @@ -382,8 +384,6 @@ NSWindowTabGroup *tabGroup = [savedNormalSetup objectForKey:TABGROUP_KEY]; BOOL moveToTab = [[tabGroup windows] count] > 0; - [self setWindow:mainWindow]; - [mainWindow setAlphaValue:0.0]; [mainWindow setLevel:NSNormalWindowLevel]; [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 14:29:19
|
Revision: 15284 http://sourceforge.net/p/skim-app/code/15284 Author: hofman Date: 2025-05-25 14:29:16 +0000 (Sun, 25 May 2025) Log Message: ----------- do not use a variable Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:23:46 UTC (rev 15283) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:29:16 UTC (rev 15284) @@ -266,11 +266,13 @@ if ([self presentationNotesDocument]) [self showNotesForPresentationWindow:presentationWindow]; - BOOL isInTab = [[mainWindow tabbedWindows] count] > 1; - if (isInTab) { + BOOL shouldFadeOut = NO; + if ([[mainWindow tabbedWindows] count] > 1) { NSUInteger tabIndex = [[mainWindow tabbedWindows] indexOfObject:mainWindow]; [savedNormalSetup setObject:[mainWindow tabGroup] forKey:TABGROUP_KEY]; [savedNormalSetup setObject:[NSNumber numberWithUnsignedInteger:tabIndex] forKey:TABINDEX_KEY]; + } else if (NSContainsRect([presentationWindow frame], [mainWindow frame]) == NO) { + shouldFadeOut = YES; } [mainWindow setDelegate:nil]; @@ -283,8 +285,6 @@ if (activity == nil) activity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated | NSActivityIdleDisplaySleepDisabled | NSActivityIdleSystemSleepDisabled reason:@"Presentation"]; - BOOL shouldFadeOut = NSContainsRect([presentationWindow frame], [mainWindow frame]) == NO && isInTab == NO; - [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { [context setDuration:PRESENTATION_DURATION]; [context setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 14:23:48
|
Revision: 15283 http://sourceforge.net/p/skim-app/code/15283 Author: hofman Date: 2025-05-25 14:23:46 +0000 (Sun, 25 May 2025) Log Message: ----------- don't pass screen in initializer as we don't set the rect relative to the screen Modified Paths: -------------- trunk/SKPresentationOptionsSheetController.m Modified: trunk/SKPresentationOptionsSheetController.m =================================================================== --- trunk/SKPresentationOptionsSheetController.m 2025-05-25 14:19:52 UTC (rev 15282) +++ trunk/SKPresentationOptionsSheetController.m 2025-05-25 14:23:46 UTC (rev 15283) @@ -327,7 +327,7 @@ rect.size.height = round(0.5 * NSHeight(rect)) + PREVIEW_INSET + 28.0; if (previewWindow == nil) { - previewWindow = [[NSPanel alloc] initWithContentRect:rect styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskFullSizeContentView backing:NSBackingStoreBuffered defer:NO screen:[[self window] screen]]; + previewWindow = [[NSPanel alloc] initWithContentRect:rect styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskFullSizeContentView backing:NSBackingStoreBuffered defer:NO]; [previewWindow setReleasedWhenClosed:NO]; [previewWindow setTitlebarAppearsTransparent:YES]; [previewWindow setHidesOnDeactivate:NO]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 14:19:56
|
Revision: 15282 http://sourceforge.net/p/skim-app/code/15282 Author: hofman Date: 2025-05-25 14:19:52 +0000 (Sun, 25 May 2025) Log Message: ----------- screen can not be nil at this point Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:11:18 UTC (rev 15281) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:19:52 UTC (rev 15282) @@ -248,7 +248,7 @@ screen = [screens firstObject]; } - NSWindow *presentationWindow = [[SKFullScreenWindow alloc] initWithContentRect:[screen ?: [mainWindow screen] frame]]; + NSWindow *presentationWindow = [[SKFullScreenWindow alloc] initWithContentRect:[screen frame]]; [presentationWindow setAlphaValue:0.0]; if (presentationView == nil) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 14:11:22
|
Revision: 15281 http://sourceforge.net/p/skim-app/code/15281 Author: hofman Date: 2025-05-25 14:11:18 +0000 (Sun, 25 May 2025) Log Message: ----------- do not remove window from tab before calling orderOut:, it should be removed implicitly, while it should not be moved to the front first Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 08:41:30 UTC (rev 15280) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 14:11:18 UTC (rev 15281) @@ -297,8 +297,6 @@ if ([NSScreen screenForWindowHasMenuBar:presentationWindow]) [NSApp setPresentationOptions:NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar]; - if (isInTab) - [mainWindow moveTabToNewWindow:nil]; [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]; [mainWindow orderOut:nil]; [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorDefault]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 08:41:31
|
Revision: 15280 http://sourceforge.net/p/skim-app/code/15280 Author: hofman Date: 2025-05-25 08:41:30 +0000 (Sun, 25 May 2025) Log Message: ----------- set delegegate of presentation window after animation, to make sure we don't get main window switch notifications while setting up Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-25 08:37:36 UTC (rev 15279) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 08:41:30 UTC (rev 15280) @@ -277,7 +277,6 @@ [self setWindow:presentationWindow]; - [presentationWindow setDelegate:self]; [presentationWindow setLevel:NSPopUpMenuWindowLevel]; // prevent sleep @@ -315,6 +314,8 @@ [presentationWindow setHasShadow:YES]; } + [presentationWindow setDelegate:self]; + [presentationView didOpen]; [touchBarController interactionModeChanged]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-25 08:37:50
|
Revision: 15279 http://sourceforge.net/p/skim-app/code/15279 Author: hofman Date: 2025-05-25 08:37:36 +0000 (Sun, 25 May 2025) Log Message: ----------- Force presentation window to high level more often to bbe sure. Make sure we don't move the normal window to a high level, for instance during presentation switching. Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m trunk/SKMainWindowController_UI.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-24 21:49:45 UTC (rev 15278) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-25 08:37:36 UTC (rev 15279) @@ -277,8 +277,8 @@ [self setWindow:presentationWindow]; + [presentationWindow setDelegate:self]; [presentationWindow setLevel:NSPopUpMenuWindowLevel]; - [presentationWindow setDelegate:self]; // prevent sleep if (activity == nil) @@ -307,8 +307,7 @@ if ([self hasOverview]) [self hideOverviewAnimating:NO]; - if ([[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey]) - [presentationWindow setLevel:NSNormalWindowLevel]; + [presentationWindow setLevel:[[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] ? NSNormalWindowLevel : NSPopUpMenuWindowLevel]; [presentationWindow makeKeyAndOrderFront:nil]; [NSApp addWindowsItem:presentationWindow title:[self windowTitleForDocumentDisplayName:[[self document] displayName]] filename:NO]; if ([[NSUserDefaults standardUserDefaults] boolForKey:SKResizablePresentationKey]) { Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2025-05-24 21:49:45 UTC (rev 15278) +++ trunk/SKMainWindowController_UI.m 2025-05-25 08:37:36 UTC (rev 15279) @@ -240,7 +240,7 @@ - (void)windowDidBecomeMain:(NSNotification *)notification { if ([[self window] isEqual:[notification object]]) { [self updateUtilityPanel]; - if ([self interactionMode] == SKPresentationMode && [NSApp isActive] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) + if ([self interactionMode] == SKPresentationMode && [NSApp isActive] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO && [[self window] isEqual:mainWindow] == NO) [[self window] setLevel:NSPopUpMenuWindowLevel]; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-24 21:49:48
|
Revision: 15278 http://sourceforge.net/p/skim-app/code/15278 Author: hofman Date: 2025-05-24 21:49:45 +0000 (Sat, 24 May 2025) Log Message: ----------- create side view controllers in code, no need for IBOutlet properties Modified Paths: -------------- trunk/MainWindow.xib trunk/SKMainWindowController.h trunk/SKMainWindowController.m Modified: trunk/MainWindow.xib =================================================================== --- trunk/MainWindow.xib 2025-05-24 20:34:56 UTC (rev 15277) +++ trunk/MainWindow.xib 2025-05-24 21:49:45 UTC (rev 15278) @@ -11,12 +11,10 @@ <outlet property="centerContentView" destination="1321" id="1526"/> <outlet property="findBarTopConstraint" destination="Twe-rt-5Qm" id="9jp-xi-0gz"/> <outlet property="leftSideContentView" destination="769" id="774"/> - <outlet property="leftSideController" destination="1543" id="1545"/> <outlet property="mainWindow" destination="5" id="1554"/> <outlet property="pdfContentView" destination="1315" id="1527"/> <outlet property="pdfSplitView" destination="1314" id="1318"/> <outlet property="rightSideContentView" destination="770" id="775"/> - <outlet property="rightSideController" destination="1544" id="1546"/> <outlet property="splitView" destination="1385" id="1448"/> <outlet property="statusBar" destination="2Zw-iS-Qai" id="5oD-6z-7iD"/> <outlet property="topConstraint" destination="kue-s7-oZq" id="Tun-Zg-UFY"/> @@ -107,15 +105,5 @@ </connections> <point key="canvasLocation" x="139" y="147"/> </window> - <customObject id="1543" customClass="SKLeftSideViewController"> - <connections> - <outlet property="mainController" destination="-2" id="1547"/> - </connections> - </customObject> - <customObject id="1544" customClass="SKRightSideViewController"> - <connections> - <outlet property="mainController" destination="-2" id="1548"/> - </connections> - </customObject> </objects> </document> Modified: trunk/SKMainWindowController.h =================================================================== --- trunk/SKMainWindowController.h 2025-05-24 20:34:56 UTC (rev 15277) +++ trunk/SKMainWindowController.h 2025-05-24 21:49:45 UTC (rev 15278) @@ -218,9 +218,6 @@ @property (nonatomic, nullable, strong) IBOutlet NSLayoutConstraint *findBarTopConstraint; @property (nonatomic, nullable, strong) IBOutlet SKStatusBar *statusBar; - -@property (nonatomic, nullable, strong) IBOutlet SKLeftSideViewController *leftSideController; -@property (nonatomic, nullable, strong) IBOutlet SKRightSideViewController *rightSideController; @property (nonatomic, nullable, strong) IBOutlet NSView *leftSideContentView, *rightSideContentView; Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-05-24 20:34:56 UTC (rev 15277) +++ trunk/SKMainWindowController.m 2025-05-24 21:49:45 UTC (rev 15278) @@ -218,7 +218,7 @@ @implementation SKMainWindowController -@synthesize mainWindow, splitView, topConstraint, centerContentView, pdfSplitView, pdfContentView, findBarTopConstraint, statusBar, pdfView, secondaryPdfView, leftSideController, rightSideController, leftSideContentView, rightSideContentView, presentationNotesDocument, presentationNotesOffset, notes, thumbnails, snapshots, searchResults, groupedSearchResults, tags, rating, pageLabel, interactionMode, placeholderPdfDocument; +@synthesize mainWindow, splitView, topConstraint, centerContentView, pdfSplitView, pdfContentView, findBarTopConstraint, statusBar, pdfView, secondaryPdfView, leftSideContentView, rightSideContentView, presentationNotesDocument, presentationNotesOffset, notes, thumbnails, snapshots, searchResults, groupedSearchResults, tags, rating, pageLabel, interactionMode, placeholderPdfDocument; @dynamic pdfDocument, presentationUndoManager, selectedNotes, hasNotes, widgetProperties, currentPage, leftSidePaneState, rightSidePaneState, findPaneState, displaysFindPane, leftSidePaneIsOpen, rightSidePaneIsOpen, searchString, hasNoteToolbar, hasOverview, notesMenu; + (BOOL)automaticallyNotifiesObserversOfPageLabel { return NO; } @@ -305,6 +305,11 @@ // Set up the panes and subviews, needs to be done before we resize them + leftSideController = [[SKLeftSideViewController alloc] init]; + [leftSideController setMainController:self]; + rightSideController = [[SKRightSideViewController alloc] init]; + [rightSideController setMainController:self]; + // make sure the first thing we call on the side view controllers is its view so their nib is loaded [leftSideContentView addSubviewWithConstraints:leftSideController.view]; [rightSideContentView addSubviewWithConstraints:rightSideController.view]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-24 20:34:58
|
Revision: 15277 http://sourceforge.net/p/skim-app/code/15277 Author: hofman Date: 2025-05-24 20:34:56 +0000 (Sat, 24 May 2025) Log Message: ----------- Set window level of presentation window after setting it as the window just to be sure Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-24 16:18:27 UTC (rev 15276) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-24 20:34:56 UTC (rev 15277) @@ -277,8 +277,9 @@ [self setWindow:presentationWindow]; + [presentationWindow setLevel:NSPopUpMenuWindowLevel]; [presentationWindow setDelegate:self]; - + // prevent sleep if (activity == nil) activity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated | NSActivityIdleDisplaySleepDisabled | NSActivityIdleSystemSleepDisabled reason:@"Presentation"]; @@ -386,8 +387,8 @@ [self setWindow:mainWindow]; [mainWindow setAlphaValue:0.0]; + [mainWindow setLevel:NSNormalWindowLevel]; [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorNone]; - [mainWindow setLevel:NSNormalWindowLevel]; if (NSPointInRect(SKCenterPoint([mainWindow frame]), [[presentationWindow screen] frame]) && moveToTab == NO) { NSWindowCollectionBehavior collectionBehavior = [mainWindow collectionBehavior]; // trick to make sure the main window shows up in the same space as the fullscreen window This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-24 16:18:31
|
Revision: 15276 http://sourceforge.net/p/skim-app/code/15276 Author: hofman Date: 2025-05-24 16:18:27 +0000 (Sat, 24 May 2025) Log Message: ----------- move screen method to NSScreen category Modified Paths: -------------- trunk/NSScreen_SKExtensions.h trunk/NSScreen_SKExtensions.m trunk/SKMainWindowController_FullScreen.m Modified: trunk/NSScreen_SKExtensions.h =================================================================== --- trunk/NSScreen_SKExtensions.h 2025-05-24 15:50:56 UTC (rev 15275) +++ trunk/NSScreen_SKExtensions.h 2025-05-24 16:18:27 UTC (rev 15276) @@ -50,6 +50,8 @@ @property (nonatomic, readonly) NSScreen *primaryScreen; +@property (nonatomic, readonly) NSArray<NSScreen *> *alternateScreens; + @property (class, readonly) CGFloat maxBackingScaleFactor; @end Modified: trunk/NSScreen_SKExtensions.m =================================================================== --- trunk/NSScreen_SKExtensions.m 2025-05-24 15:50:56 UTC (rev 15275) +++ trunk/NSScreen_SKExtensions.m 2025-05-24 16:18:27 UTC (rev 15276) @@ -102,6 +102,37 @@ return self; } +static inline BOOL insufficientScreenSize(NSValue *value) { + NSSize size = [value sizeValue]; + return size.height < 100.0 || size.width < 100.0; +} + +- (NSArray *)alternateScreens { + NSMutableDictionary *screens = [NSMutableDictionary dictionary]; + NSMutableArray *screenNumbers = [NSMutableArray array]; + NSNumber *screenNumber = nil; + for (NSScreen *aScreen in [NSScreen screens]) { + NSDictionary *deviceDescription = [aScreen deviceDescription]; + if ([deviceDescription objectForKey:NSDeviceIsScreen] == nil || + insufficientScreenSize([deviceDescription objectForKey:NSDeviceSize])) + continue; + NSNumber *aScreenNumber = [deviceDescription objectForKey:@"NSScreenNumber"]; + [screens setObject:aScreen forKey:aScreenNumber]; + CGDirectDisplayID displayID = (CGDirectDisplayID)[aScreenNumber unsignedIntValue]; + displayID = CGDisplayMirrorsDisplay(displayID); + if (displayID == kCGNullDirectDisplay) + [screenNumbers addObject:aScreenNumber]; + if ([aScreen isEqual:self]) + screenNumber = displayID == kCGNullDirectDisplay ? aScreenNumber : [NSNumber numberWithUnsignedInt:displayID]; + } + NSMutableArray *alternateScreens = [NSMutableArray array]; + for (NSNumber *aScreenNumber in screenNumbers) { + if ([aScreenNumber isEqual:screenNumber] == NO) + [alternateScreens addObject:[screens objectForKey:aScreenNumber]]; + } + return alternateScreens; +} + + (CGFloat)maxBackingScaleFactor { CGFloat scale = 1.0; for (NSScreen *screen in [NSScreen screens]) { Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-24 15:50:56 UTC (rev 15275) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-24 16:18:27 UTC (rev 15276) @@ -143,7 +143,7 @@ } } -#pragma mark Custom Full Screen Windows +#pragma mark Presentation Support Methods - (BOOL)handleRightMouseDown:(NSEvent *)theEvent { if ([self interactionMode] == SKPresentationMode) { @@ -153,44 +153,6 @@ return NO; } -- (void)forceSubwindowsOnTop:(BOOL)flag { - for (NSWindowController *wc in [[self document] windowControllers]) { - if ([wc respondsToSelector:@selector(setForceOnTop:)] && wc != presentationPreview) - [(id)wc setForceOnTop:flag]; - } -} - -static inline BOOL insufficientScreenSize(NSValue *value) { - NSSize size = [value sizeValue]; - return size.height < 100.0 || size.width < 100.0; -} - -- (NSArray *)alternateScreensForScreen:(NSScreen *)screen { - NSMutableDictionary *screens = [NSMutableDictionary dictionary]; - NSMutableArray *screenNumbers = [NSMutableArray array]; - NSNumber *screenNumber = nil; - for (NSScreen *aScreen in [NSScreen screens]) { - NSDictionary *deviceDescription = [aScreen deviceDescription]; - if ([deviceDescription objectForKey:NSDeviceIsScreen] == nil || - insufficientScreenSize([deviceDescription objectForKey:NSDeviceSize])) - continue; - NSNumber *aScreenNumber = [deviceDescription objectForKey:@"NSScreenNumber"]; - [screens setObject:aScreen forKey:aScreenNumber]; - CGDirectDisplayID displayID = (CGDirectDisplayID)[aScreenNumber unsignedIntValue]; - displayID = CGDisplayMirrorsDisplay(displayID); - if (displayID == kCGNullDirectDisplay) - [screenNumbers addObject:aScreenNumber]; - if ([aScreen isEqual:screen]) - screenNumber = displayID == kCGNullDirectDisplay ? aScreenNumber : [NSNumber numberWithUnsignedInt:displayID]; - } - NSMutableArray *alternateScreens = [NSMutableArray array]; - for (NSNumber *aScreenNumber in screenNumbers) { - if ([aScreenNumber isEqual:screenNumber] == NO) - [alternateScreens addObject:[screens objectForKey:aScreenNumber]]; - } - return alternateScreens; -} - - (void)showNotesForPresentationWindow:(NSWindow *)window { PDFDocument *pdfDoc = [[self presentationNotesDocument] pdfDocument]; NSInteger offset = [self presentationNotesOffset]; @@ -201,7 +163,7 @@ [presentationPreview setDelegate:self]; NSScreen *screen = [window screen]; - screen = [[self alternateScreensForScreen:screen] firstObject] ?: screen; + screen = [[screen alternateScreens] firstObject] ?: screen; [presentationPreview setPdfDocument:[pdfView document] previewPageNumber:pageIndex @@ -214,43 +176,6 @@ [self addPresentationNotesNavigation]; } -- (void)displayStaticContentForWindow:(NSWindow *)window { - NSRect frame = [window frame]; - CGImageRef cgImage = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, (CGWindowID)[window windowNumber], kCGWindowImageBoundsIgnoreFraming | kCGWindowImageBestResolution); - if (([window styleMask] & NSWindowStyleMaskFullScreen) != 0 && autoHideToolbarInFullScreen() == NO && [[window toolbar] isVisible]) { - NSWindow *tbWindow = nil; - for (tbWindow in [window childWindows]) - if ([NSStringFromClass([tbWindow class]) containsString:@"Toolbar"]) - break; - if (tbWindow) { - CGImageRef tbCgImage = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, (CGWindowID)[tbWindow windowNumber], kCGWindowImageBoundsIgnoreFraming | kCGWindowImageBestResolution); - NSRect tbFrame = [tbWindow frame]; - size_t width = CGImageGetWidth(cgImage), height = CGImageGetHeight(cgImage); - CGFloat sx = width / NSWidth(frame), sy = height / NSHeight(frame); - CGContextRef ctx = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(cgImage), CGImageGetBytesPerRow(cgImage), CGImageGetColorSpace(cgImage), CGImageGetBitmapInfo(cgImage)); - CGContextDrawImage(ctx, CGRectMake(0.0, 0.0, width, height), cgImage); - CGContextDrawImage(ctx, CGRectMake(sx * (NSMinX(tbFrame) - NSMinX(frame)), sy * (NSMinY(tbFrame) - NSMinY(frame)), sx * NSWidth(tbFrame), sy * NSHeight(tbFrame)), tbCgImage); - CGImageRelease(tbCgImage); - CGImageRelease(cgImage); - cgImage = CGBitmapContextCreateImage(ctx); - CGContextRelease(ctx); - } - } - NSImage *image = [[NSImage alloc] initWithCGImage:cgImage size:frame.size]; - CGImageRelease(cgImage); - if (animationWindow == nil) - animationWindow = [[SKAnimatedBorderlessWindow alloc] initWithContentRect:frame]; - else - [animationWindow setFrame:frame display:NO]; - [animationWindow addImageViewWithImage:image]; - [animationWindow setHasShadow:[window hasShadow]]; - [animationWindow setLevel:[window level]]; - [animationWindow orderWindow:NSWindowAbove relativeTo:window]; - [window setAlphaValue:0.0]; -} - -#pragma mark SKPresentationView delegate - - (void)handlePresentationViewPageChanged:(NSNotification *)notification { PDFPage *page = [presentationView page]; if (page) { @@ -318,7 +243,7 @@ NSScreen *screen = [mainWindow screen]; if ([self presentationNotesDocument] && [self presentationNotesDocument] != [self document]) { - NSArray *screens = [self alternateScreensForScreen:[[[self presentationNotesDocument] mainWindow] screen]]; + NSArray *screens = [[[[self presentationNotesDocument] mainWindow] screen] alternateScreens]; if ([screens count] > 0 && [screens containsObject:[screen primaryScreen]] == NO) screen = [screens firstObject]; } @@ -537,6 +462,50 @@ return mwcFlags.isSwitchingFullScreen == 0 && [self interactionMode] == SKPresentationMode; } +#pragma mark Full Screen Support Methods + +- (void)forceSubwindowsOnTop:(BOOL)flag { + for (NSWindowController *wc in [[self document] windowControllers]) { + if ([wc respondsToSelector:@selector(setForceOnTop:)] && wc != presentationPreview) + [(id)wc setForceOnTop:flag]; + } +} + +- (void)displayStaticContentForWindow:(NSWindow *)window { + NSRect frame = [window frame]; + CGImageRef cgImage = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, (CGWindowID)[window windowNumber], kCGWindowImageBoundsIgnoreFraming | kCGWindowImageBestResolution); + if (([window styleMask] & NSWindowStyleMaskFullScreen) != 0 && autoHideToolbarInFullScreen() == NO && [[window toolbar] isVisible]) { + NSWindow *tbWindow = nil; + for (tbWindow in [window childWindows]) + if ([NSStringFromClass([tbWindow class]) containsString:@"Toolbar"]) + break; + if (tbWindow) { + CGImageRef tbCgImage = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, (CGWindowID)[tbWindow windowNumber], kCGWindowImageBoundsIgnoreFraming | kCGWindowImageBestResolution); + NSRect tbFrame = [tbWindow frame]; + size_t width = CGImageGetWidth(cgImage), height = CGImageGetHeight(cgImage); + CGFloat sx = width / NSWidth(frame), sy = height / NSHeight(frame); + CGContextRef ctx = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(cgImage), CGImageGetBytesPerRow(cgImage), CGImageGetColorSpace(cgImage), CGImageGetBitmapInfo(cgImage)); + CGContextDrawImage(ctx, CGRectMake(0.0, 0.0, width, height), cgImage); + CGContextDrawImage(ctx, CGRectMake(sx * (NSMinX(tbFrame) - NSMinX(frame)), sy * (NSMinY(tbFrame) - NSMinY(frame)), sx * NSWidth(tbFrame), sy * NSHeight(tbFrame)), tbCgImage); + CGImageRelease(tbCgImage); + CGImageRelease(cgImage); + cgImage = CGBitmapContextCreateImage(ctx); + CGContextRelease(ctx); + } + } + NSImage *image = [[NSImage alloc] initWithCGImage:cgImage size:frame.size]; + CGImageRelease(cgImage); + if (animationWindow == nil) + animationWindow = [[SKAnimatedBorderlessWindow alloc] initWithContentRect:frame]; + else + [animationWindow setFrame:frame display:NO]; + [animationWindow addImageViewWithImage:image]; + [animationWindow setHasShadow:[window hasShadow]]; + [animationWindow setLevel:[window level]]; + [animationWindow orderWindow:NSWindowAbove relativeTo:window]; + [window setAlphaValue:0.0]; +} + #pragma mark NSWindowDelegate Full Screen Methods static inline BOOL autoHideToolbarInFullScreen() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-24 15:50:59
|
Revision: 15275 http://sourceforge.net/p/skim-app/code/15275 Author: hofman Date: 2025-05-24 15:50:56 +0000 (Sat, 24 May 2025) Log Message: ----------- set delegate and start activity before animation Modified Paths: -------------- trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-24 15:27:03 UTC (rev 15274) +++ trunk/SKMainWindowController_FullScreen.m 2025-05-24 15:50:56 UTC (rev 15275) @@ -352,6 +352,12 @@ [self setWindow:presentationWindow]; + [presentationWindow setDelegate:self]; + + // prevent sleep + if (activity == nil) + activity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated | NSActivityIdleDisplaySleepDisabled | NSActivityIdleSystemSleepDisabled reason:@"Presentation"]; + BOOL shouldFadeOut = NSContainsRect([presentationWindow frame], [mainWindow frame]) == NO && isInTab == NO; [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { @@ -372,25 +378,18 @@ [mainWindow orderOut:nil]; [mainWindow setAnimationBehavior:NSWindowAnimationBehaviorDefault]; [mainWindow setAlphaValue:1.0]; + if ([self hasOverview]) + [self hideOverviewAnimating:NO]; + if ([[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey]) [presentationWindow setLevel:NSNormalWindowLevel]; [presentationWindow makeKeyAndOrderFront:nil]; [NSApp addWindowsItem:presentationWindow title:[self windowTitleForDocumentDisplayName:[[self document] displayName]] filename:NO]; - - if ([self hasOverview]) - [self hideOverviewAnimating:NO]; - if ([[NSUserDefaults standardUserDefaults] boolForKey:SKResizablePresentationKey]) { [presentationWindow setStyleMask:[presentationWindow styleMask] | NSWindowStyleMaskResizable]; [presentationWindow setHasShadow:YES]; } - // prevent sleep - if (activity == nil) - activity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated | NSActivityIdleDisplaySleepDisabled | NSActivityIdleSystemSleepDisabled reason:@"Presentation"]; - - [presentationWindow setDelegate:self]; - [presentationView didOpen]; [touchBarController interactionModeChanged]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |