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-04 09:12:11
|
Revision: 15148 http://sourceforge.net/p/skim-app/code/15148 Author: hofman Date: 2025-05-04 09:11:54 +0000 (Sun, 04 May 2025) Log Message: ----------- wait generating image for tool tip until grouped search result is finished being constructed by inspecting a flag set when ending searching a page Modified Paths: -------------- trunk/SKGroupedSearchResult.h trunk/SKGroupedSearchResult.m trunk/SKImageToolTipContext.h trunk/SKImageToolTipWindow.m trunk/SKMainWindowController.m Modified: trunk/SKGroupedSearchResult.h =================================================================== --- trunk/SKGroupedSearchResult.h 2025-05-03 14:51:40 UTC (rev 15147) +++ trunk/SKGroupedSearchResult.h 2025-05-04 09:11:54 UTC (rev 15148) @@ -47,6 +47,7 @@ PDFPage *page; NSUInteger maxCount; NSMutableArray<PDFSelection *> *matches; + BOOL readyForToolTip; } @property (nonatomic, readonly) PDFPage *page; @@ -55,6 +56,7 @@ @property (nonatomic) NSUInteger maxCount; @property (weak, nonatomic, readonly) NSString *label; @property (nonatomic, readonly) NSArray<PDFSelection *> *matches; +@property (nonatomic, getter=isReadyForToolTip) BOOL readyForToolTip; - (instancetype)initWithPage:(PDFPage *)aPage maxCount:(NSUInteger)aMaxCount; Modified: trunk/SKGroupedSearchResult.m =================================================================== --- trunk/SKGroupedSearchResult.m 2025-05-03 14:51:40 UTC (rev 15147) +++ trunk/SKGroupedSearchResult.m 2025-05-04 09:11:54 UTC (rev 15148) @@ -45,7 +45,7 @@ @implementation SKGroupedSearchResult -@synthesize page, maxCount, matches; +@synthesize page, maxCount, matches, readyForToolTip; @dynamic pageIndex, count, label; + (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key { Modified: trunk/SKImageToolTipContext.h =================================================================== --- trunk/SKImageToolTipContext.h 2025-05-03 14:51:40 UTC (rev 15147) +++ trunk/SKImageToolTipContext.h 2025-05-04 09:11:54 UTC (rev 15148) @@ -44,6 +44,8 @@ @protocol SKImageToolTipContext <NSObject> - (nullable NSImage *)toolTipImageWithScale:(CGFloat)scale; +@optional +@property (nonatomic, readonly, getter=isReadyForToolTip) BOOL readyForToolTip; @end Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-03 14:51:40 UTC (rev 15147) +++ trunk/SKImageToolTipWindow.m 2025-05-04 09:11:54 UTC (rev 15148) @@ -174,7 +174,11 @@ image = nil; shouldShow = NO; - dispatch_async([[self class] imageQueue], ^{ + dispatch_time_t delay = 0; + if ([aContext respondsToSelector:@selector(isReadyForToolTip)] && [aContext isReadyForToolTip] == NO) + delay = NSEC_PER_SEC / 10; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay), [[self class] imageQueue], ^{ NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-05-03 14:51:40 UTC (rev 15147) +++ trunk/SKMainWindowController.m 2025-05-04 09:11:54 UTC (rev 15148) @@ -2037,6 +2037,18 @@ - (void)documentDidEndPageFind:(NSNotification *)note { NSUInteger pageIndex = [[[note userInfo] objectForKey:@"PDFDocumentPageIndex"] unsignedIntValue]; + + NSUInteger i = [groupedSearchResults count]; + while (i-- > 0) { + SKGroupedSearchResult *result = [groupedSearchResults objectAtIndex:i]; + NSUInteger aPageIndex = [result pageIndex]; + if (pageIndex >= aPageIndex) { + if (pageIndex == aPageIndex) + [result setReadyForToolTip:YES]; + break; + } + } + if ([statusBar progressIndicatorStyle] == SKProgressIndicatorStyleDeterminate) [[statusBar progressIndicator] setDoubleValue:pageIndex + 1.0]; if (pageIndex > 0 && pageIndex % 50 == 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-03 14:51:59
|
Revision: 15147 http://sourceforge.net/p/skim-app/code/15147 Author: hofman Date: 2025-05-03 14:51:40 +0000 (Sat, 03 May 2025) Log Message: ----------- Handle poge navigation events in overview view Modified Paths: -------------- trunk/SKOverviewView.m Modified: trunk/SKOverviewView.m =================================================================== --- trunk/SKOverviewView.m 2025-05-03 14:38:42 UTC (rev 15146) +++ trunk/SKOverviewView.m 2025-05-03 14:51:40 UTC (rev 15147) @@ -40,6 +40,7 @@ #import "SKTypeSelectHelper.h" #import "NSEvent_SKExtensions.h" #import "SKApplication.h" +#import "SKMainWindowController_Actions.h" @interface NSCollectionView (SKPrivateDeclarations) @@ -52,11 +53,21 @@ - (void)keyDown:(NSEvent *)theEvent { unichar eventChar = [theEvent firstCharacter]; + NSUInteger modifiers = [theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagCapsLock; + NSUInteger standardModifiers = modifiers & ~NSEventModifierFlagNumericPad & ~NSEventModifierFlagFunction; - if ((eventChar == NSNewlineCharacter || eventChar == NSEnterCharacter || eventChar == NSCarriageReturnCharacter) && [theEvent deviceIndependentModifierFlags] == 0 && [self doubleClickAction]) { + if ((eventChar == NSNewlineCharacter || eventChar == NSEnterCharacter || eventChar == NSCarriageReturnCharacter) && modifiers == 0 && [self doubleClickAction]) { [self tryToPerform:[self doubleClickAction] with:self]; - } else if (eventChar == 'p' && [theEvent deviceIndependentModifierFlags] == 0 && [self singleClickAction]) { + } else if (eventChar == 'p' && modifiers == 0 && [self singleClickAction]) { [self tryToPerform:[self singleClickAction] with:self]; + } else if ((eventChar == NSDownArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSRightArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSPageDownFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToNextPage:) with:self]; + } else if ((eventChar == NSUpArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSLeftArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSPageUpFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToPreviousPage:) with:self]; + } else if ((eventChar == NSLeftArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSUpArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSHomeFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToFirstPage:) with:self]; + } else if ((eventChar == NSRightArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSDownArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSEndFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToLastPage:) with:self]; } else if ([typeSelectHelper handleEvent:theEvent] == NO) { [super keyDown:theEvent]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-03 14:38:59
|
Revision: 15146 http://sourceforge.net/p/skim-app/code/15146 Author: hofman Date: 2025-05-03 14:38:42 +0000 (Sat, 03 May 2025) Log Message: ----------- use a lot of shortcuts though keyDowwn for page navigation in presentation view Modified Paths: -------------- trunk/SKPresentationView.m Modified: trunk/SKPresentationView.m =================================================================== --- trunk/SKPresentationView.m 2025-05-03 09:17:24 UTC (rev 15145) +++ trunk/SKPresentationView.m 2025-05-03 14:38:42 UTC (rev 15146) @@ -424,13 +424,21 @@ NSUInteger modifiers = [theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagCapsLock; NSUInteger standardModifiers = modifiers & ~NSEventModifierFlagNumericPad & ~NSEventModifierFlagFunction; - if ((eventChar == NSRightArrowFunctionKey || eventChar == NSDownArrowFunctionKey || eventChar == NSPageDownFunctionKey) && (standardModifiers == 0)) { + if (((eventChar == NSDownArrowFunctionKey) && ((standardModifiers & ~NSEventModifierFlagOption) == 0)) || + ((eventChar == NSRightArrowFunctionKey) && ((standardModifiers & ~NSEventModifierFlagCommand) == 0)) || + ((eventChar == NSPageDownFunctionKey) && (standardModifiers == 0))) { [self goToNextPage:self]; - } else if ((eventChar == NSLeftArrowFunctionKey || eventChar == NSUpArrowFunctionKey || eventChar == NSPageUpFunctionKey) && (standardModifiers == 0)) { + } else if (((eventChar == NSUpArrowFunctionKey) && ((standardModifiers & ~NSEventModifierFlagOption) == 0)) || + ((eventChar == NSLeftArrowFunctionKey) && ((standardModifiers & ~NSEventModifierFlagCommand) == 0)) || + ((eventChar == NSPageUpFunctionKey) && (standardModifiers == 0))) { [self goToPreviousPage:self]; - } else if ((eventChar == NSHomeFunctionKey) && (standardModifiers == 0)) { + } else if (((eventChar == NSLeftArrowFunctionKey) && (standardModifiers == NSEventModifierFlagOption)) || + ((eventChar == NSUpArrowFunctionKey) && (standardModifiers == NSEventModifierFlagCommand)) || + ((eventChar == NSHomeFunctionKey) && (standardModifiers == 0))) { [self goToFirstPage:self]; - } else if ((eventChar == NSEndFunctionKey) && (standardModifiers == 0)) { + } else if (((eventChar == NSRightArrowFunctionKey) && (standardModifiers == NSEventModifierFlagOption)) || + ((eventChar == NSDownArrowFunctionKey) && (standardModifiers == NSEventModifierFlagCommand)) || + ((eventChar == NSEndFunctionKey && standardModifiers == 0))) { [self goToLastPage:self]; } else if ((eventChar == 'p') && (modifiers == 0)) { [self tryToPerform:@selector(toggleOverview:) with:self]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-03 09:17:42
|
Revision: 15145 http://sourceforge.net/p/skim-app/code/15145 Author: hofman Date: 2025-05-03 09:17:24 +0000 (Sat, 03 May 2025) Log Message: ----------- Set shortcuts for Next/previous to Option-arrow, so Command-arrow can work while text editing (to go to end/beginning of line). Don't set shortcuts for First/Last, so Option-left/right can work in text editing (to go to next/previous word). Instead, handle Option-up/down in keyDown, so it does work when not editing a text note. Also implement old shortcuts Command-left/right in keyDown, so it can work when not using a reading bar. Change default reading bar shortcuts to Command-arrow and Shift-Command-arrow. Modified Paths: -------------- trunk/Base.lproj/MainMenu.xib trunk/SKPDFView.m Modified: trunk/Base.lproj/MainMenu.xib =================================================================== --- trunk/Base.lproj/MainMenu.xib 2025-05-02 21:38:44 UTC (rev 15144) +++ trunk/Base.lproj/MainMenu.xib 2025-05-03 09:17:24 UTC (rev 15145) @@ -886,22 +886,26 @@ <menuItem title="Go" id="271"> <menu key="submenu" title="Go" id="272"> <items> - <menuItem title="Next" keyEquivalent="" id="273"> + <menuItem title="Next" keyEquivalent="" id="273"> + <modifierMask key="keyEquivalentModifierMask" option="YES"/> <connections> <action selector="doGoToNextPage:" target="-1" id="282"/> </connections> </menuItem> - <menuItem title="Previous" keyEquivalent="" id="274"> + <menuItem title="Previous" keyEquivalent="" id="274"> + <modifierMask key="keyEquivalentModifierMask" option="YES"/> <connections> <action selector="doGoToPreviousPage:" target="-1" id="283"/> </connections> </menuItem> - <menuItem title="First" keyEquivalent="" id="912"> + <menuItem title="First" id="912"> + <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="doGoToFirstPage:" target="-1" id="916"/> </connections> </menuItem> - <menuItem title="Last" keyEquivalent="" id="914"> + <menuItem title="Last" id="914"> + <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="doGoToLastPage:" target="-1" id="917"/> </connections> Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2025-05-02 21:38:44 UTC (rev 15144) +++ trunk/SKPDFView.m 2025-05-03 09:17:24 UTC (rev 15145) @@ -139,8 +139,8 @@ static char SKPDFViewDefaultsObservationContext; -static NSUInteger moveReadingBarModifiers = NSEventModifierFlagOption; -static NSUInteger resizeReadingBarModifiers = NSEventModifierFlagOption | NSEventModifierFlagShift; +static NSUInteger moveReadingBarModifiers = NSEventModifierFlagCommand; +static NSUInteger resizeReadingBarModifiers = NSEventModifierFlagCommand | NSEventModifierFlagShift; static BOOL useToolModeCursors = NO; @@ -1679,6 +1679,14 @@ [self setAnnotationMode:SKNoteTypeInk]; } else if ((eventChar == '?') && ((modifiers & ~NSEventModifierFlagShift) == 0)) { [self showHelpMenu]; + } else if ((eventChar == NSLeftArrowFunctionKey) && (standardModifiers == NSEventModifierFlagOption) && [self canGoToFirstPage]) { + [self goToFirstPage:nil]; + } else if ((eventChar == NSRightArrowFunctionKey) && (standardModifiers == NSEventModifierFlagOption) && [self canGoToLastPage]) { + [self goToLastPage:nil]; + } else if ((eventChar == NSLeftArrowFunctionKey) && (standardModifiers == NSEventModifierFlagCommand) && [self canGoToPreviousPage]) { + [self goToPreviousPage:nil]; + } else if ((eventChar == NSRightArrowFunctionKey) && (standardModifiers == NSEventModifierFlagCommand) && [self canGoToNextPage]) { + [self goToNextPage:nil]; } else if ([typeSelectHelper handleEvent:theEvent] == NO) { [super keyDown:theEvent]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-02 21:39:03
|
Revision: 15144 http://sourceforge.net/p/skim-app/code/15144 Author: hofman Date: 2025-05-02 21:38:44 +0000 (Fri, 02 May 2025) Log Message: ----------- Remember opening a document to prevent reopening last open documents when opening from services Modified Paths: -------------- trunk/SKDocumentController.m Modified: trunk/SKDocumentController.m =================================================================== --- trunk/SKDocumentController.m 2025-05-02 16:21:52 UTC (rev 15143) +++ trunk/SKDocumentController.m 2025-05-02 21:38:44 UTC (rev 15144) @@ -245,6 +245,8 @@ } - (void)openDocumentWithImageFromPasteboard:(NSPasteboard *)pboard completionHandler:(void (^)(NSDocument *document, BOOL documentWasAlreadyOpen, NSError *error))completionHandler { + openedFile = YES; + NSData *data = nil; NSString *type = nil; @@ -290,6 +292,8 @@ } - (void)openDocumentWithURLFromPasteboard:(NSPasteboard *)pboard showNotes:(BOOL)showNotes completionHandler:(void (^)(NSDocument *document, BOOL documentWasAlreadyOpen, NSError *error))completionHandler { + openedFile = YES; + NSArray *theURLs = [NSURL readURLsFromPasteboard:pboard]; NSURL *theURL = [theURLs count] > 0 ? [theURLs objectAtIndex:0] : nil; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-02 16:22:10
|
Revision: 15143 http://sourceforge.net/p/skim-app/code/15143 Author: hofman Date: 2025-05-02 16:21:52 +0000 (Fri, 02 May 2025) Log Message: ----------- initialize all ivars Modified Paths: -------------- trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-02 16:14:03 UTC (rev 15142) +++ trunk/SKImageToolTipWindow.m 2025-05-02 16:21:52 UTC (rev 15143) @@ -81,6 +81,8 @@ [self setAutoHideTimeInterval:AUTO_HIDE_TIME_INTERVAL]; context = nil; point = NSZeroPoint; + image = nil; + shouldShow = NO; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orderOut:) name:NSApplicationWillResignActiveNotification object:NSApp]; @@ -182,6 +184,7 @@ NSImage *anImage = [aContext toolTipImageWithScale:usedScale]; dispatch_async(dispatch_get_main_queue(), ^{ + // check if another image is enerated or we are fading out if (aContext == context) { image = anImage; @@ -190,7 +193,9 @@ else if (shouldShow) [self show]; } + }); + }); [self performSelector:@selector(showDelayed) withObject:nil afterDelay:[self isVisible] ? ALT_SHOW_DELAY : DEFAULT_SHOW_DELAY]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-02 16:14:21
|
Revision: 15142 http://sourceforge.net/p/skim-app/code/15142 Author: hofman Date: 2025-05-02 16:14:03 +0000 (Fri, 02 May 2025) Log Message: ----------- No need to remember the scale as it can bbe captured by the block Modified Paths: -------------- trunk/SKImageToolTipWindow.h trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.h =================================================================== --- trunk/SKImageToolTipWindow.h 2025-05-02 16:10:26 UTC (rev 15141) +++ trunk/SKImageToolTipWindow.h 2025-05-02 16:14:03 UTC (rev 15142) @@ -45,7 +45,6 @@ @interface SKImageToolTipWindow : SKAnimatedBorderlessWindow { id <SKImageToolTipContext> context; NSPoint point; - CGFloat scale; NSImageView *imageView; NSImage *image; BOOL shouldShow; Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-02 16:10:26 UTC (rev 15141) +++ trunk/SKImageToolTipWindow.m 2025-05-02 16:14:03 UTC (rev 15142) @@ -163,7 +163,6 @@ } - (void)showForImageContext:(id <SKImageToolTipContext>)aContext scale:(CGFloat)aScale atPoint:(NSPoint)aPoint { - scale = aScale; point = aPoint; if ([aContext isEqual:context] == NO) { @@ -173,12 +172,13 @@ image = nil; shouldShow = NO; - NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; - CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; - if (usedScale <= 0.0) - usedScale = usedScale < 0.0 ? fmin(scale, -usedScale) : scale; dispatch_async([[self class] imageQueue], ^{ + NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; + CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; + if (usedScale <= 0.0) + usedScale = usedScale < 0.0 ? fmin(aScale, -usedScale) : aScale; + NSImage *anImage = [aContext toolTipImageWithScale:usedScale]; dispatch_async(dispatch_get_main_queue(), ^{ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-02 16:10:45
|
Revision: 15141 http://sourceforge.net/p/skim-app/code/15141 Author: hofman Date: 2025-05-02 16:10:26 +0000 (Fri, 02 May 2025) Log Message: ----------- Generate tooltip image on thread immediately, so it has a good change to be available after the delay. Show when both the image is generated and the delayed message is delivered. Modified Paths: -------------- trunk/SKImageToolTipWindow.h trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.h =================================================================== --- trunk/SKImageToolTipWindow.h 2025-05-02 08:45:04 UTC (rev 15140) +++ trunk/SKImageToolTipWindow.h 2025-05-02 16:10:26 UTC (rev 15141) @@ -47,6 +47,8 @@ NSPoint point; CGFloat scale; NSImageView *imageView; + NSImage *image; + BOOL shouldShow; } @property (class, nonatomic, readonly) SKImageToolTipWindow *sharedToolTipWindow; Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-02 08:45:04 UTC (rev 15140) +++ trunk/SKImageToolTipWindow.m 2025-05-02 16:10:26 UTC (rev 15141) @@ -111,6 +111,8 @@ - (void)orderOut:(id)sender { context = nil; point = NSZeroPoint; + image = nil; + shouldShow = NO; [super orderOut:sender]; } @@ -118,57 +120,43 @@ // ignore any currently generating image context = nil; point = NSZeroPoint; + image = nil; + shouldShow = NO; [super fadeOut]; } -- (void)showDelayed { - id<SKImageToolTipContext> theContext = context; - NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; - CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; - if (usedScale <= 0.0) - usedScale = usedScale < 0.0 ? fmin(scale, -usedScale) : scale; +- (void)show { + [imageView setImage:image]; - dispatch_async([[self class] imageQueue], ^{ - - NSImage *image = [theContext toolTipImageWithScale:usedScale]; - - dispatch_async(dispatch_get_main_queue(), ^{ - // check if another image is enerated or we are fading out - if (theContext != context) - return; - - if (image) { - BOOL isOpaque = [[[image representations] firstObject] isOpaque]; - - [imageView setImage:image]; - - [[self contentView] setContentFilters:isOpaque ? SKColorEffectFilters() : @[]]; - - NSPoint thePoint = NSEqualPoints(point, NSZeroPoint) ? [NSEvent mouseLocation] : point; - NSRect screenRect = [[NSScreen screenForPoint:thePoint] frame]; - NSRect contentRect = NSZeroRect; - contentRect.size = [image size]; - contentRect.origin.x = fmin(thePoint.x, NSMaxX(screenRect) - NSWidth(contentRect)); - contentRect.origin.y = thePoint.y - WINDOW_OFFSET - NSHeight(contentRect); - contentRect = [self frameRectForContentRect:contentRect]; - if (NSMinY(contentRect) < NSMinX(screenRect)) - contentRect.origin.y = thePoint.y + WINDOW_OFFSET; - [self setFrame:contentRect display:NO]; - - if ([self isVisible] && [self alphaValue] > CRITICAL_ALPHA_VALUE) - [self orderFront:self]; - else - [self fadeIn]; - - } else { - - [self fadeOut]; - - } - }); - }); + BOOL isOpaque = [[[image representations] firstObject] isOpaque]; + [[self contentView] setContentFilters:isOpaque ? SKColorEffectFilters() : @[]]; + + NSPoint thePoint = NSEqualPoints(point, NSZeroPoint) ? [NSEvent mouseLocation] : point; + NSRect screenRect = [[NSScreen screenForPoint:thePoint] frame]; + NSRect contentRect = NSZeroRect; + contentRect.size = [image size]; + contentRect.origin.x = fmin(thePoint.x, NSMaxX(screenRect) - NSWidth(contentRect)); + contentRect.origin.y = thePoint.y - WINDOW_OFFSET - NSHeight(contentRect); + contentRect = [self frameRectForContentRect:contentRect]; + if (NSMinY(contentRect) < NSMinX(screenRect)) + contentRect.origin.y = thePoint.y + WINDOW_OFFSET; + [self setFrame:contentRect display:NO]; + + if ([self isVisible] && [self alphaValue] > CRITICAL_ALPHA_VALUE) + [self orderFront:self]; + else + [self fadeIn]; + + image = nil; + shouldShow = NO; } +- (void)showDelayed { + shouldShow = YES; + if (image) + [self show]; +} + - (void)stopAnimation { [super stopAnimation]; [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(showDelayed) object:nil]; @@ -182,7 +170,29 @@ [self stopAnimation]; context = aContext; + image = nil; + shouldShow = NO; + NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; + CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; + if (usedScale <= 0.0) + usedScale = usedScale < 0.0 ? fmin(scale, -usedScale) : scale; + dispatch_async([[self class] imageQueue], ^{ + + NSImage *anImage = [aContext toolTipImageWithScale:usedScale]; + + dispatch_async(dispatch_get_main_queue(), ^{ + // check if another image is enerated or we are fading out + if (aContext == context) { + image = anImage; + if (image == nil) + [self fadeOut]; + else if (shouldShow) + [self show]; + } + }); + }); + [self performSelector:@selector(showDelayed) withObject:nil afterDelay:[self isVisible] ? ALT_SHOW_DELAY : DEFAULT_SHOW_DELAY]; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-02 08:45:22
|
Revision: 15140 http://sourceforge.net/p/skim-app/code/15140 Author: hofman Date: 2025-05-02 08:45:04 +0000 (Fri, 02 May 2025) Log Message: ----------- use the context to decide whether async generated tool tip image should be shown Modified Paths: -------------- trunk/SKImageToolTipWindow.h trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.h =================================================================== --- trunk/SKImageToolTipWindow.h 2025-05-01 22:20:41 UTC (rev 15139) +++ trunk/SKImageToolTipWindow.h 2025-05-02 08:45:04 UTC (rev 15140) @@ -47,8 +47,6 @@ NSPoint point; CGFloat scale; NSImageView *imageView; - NSInteger currentRequest; - BOOL generatingRequest; } @property (class, nonatomic, readonly) SKImageToolTipWindow *sharedToolTipWindow; Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-01 22:20:41 UTC (rev 15139) +++ trunk/SKImageToolTipWindow.m 2025-05-02 08:45:04 UTC (rev 15140) @@ -109,11 +109,6 @@ } - (void)orderOut:(id)sender { - // ignore any currently generating image - if (generatingRequest) { - ++currentRequest; - generatingRequest = NO; - } context = nil; point = NSZeroPoint; [super orderOut:sender]; @@ -121,10 +116,6 @@ - (void)fadeOut { // ignore any currently generating image - if (generatingRequest) { - ++currentRequest; - generatingRequest = NO; - } context = nil; point = NSZeroPoint; [super fadeOut]; @@ -131,11 +122,6 @@ } - (void)showDelayed { - if (generatingRequest) - ++currentRequest; - generatingRequest = YES; - - NSInteger myRequest = currentRequest; id<SKImageToolTipContext> theContext = context; NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; @@ -148,9 +134,8 @@ dispatch_async(dispatch_get_main_queue(), ^{ // check if another image is enerated or we are fading out - if (myRequest != currentRequest) + if (theContext != context) return; - generatingRequest = NO; if (image) { BOOL isOpaque = [[[image representations] firstObject] isOpaque]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-01 22:20:59
|
Revision: 15139 http://sourceforge.net/p/skim-app/code/15139 Author: hofman Date: 2025-05-01 22:20:41 +0000 (Thu, 01 May 2025) Log Message: ----------- Get point for tooltip image when needed Modified Paths: -------------- trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-01 21:54:51 UTC (rev 15138) +++ trunk/SKImageToolTipWindow.m 2025-05-01 22:20:41 UTC (rev 15139) @@ -136,9 +136,7 @@ generatingRequest = YES; NSInteger myRequest = currentRequest; - id<SKImageToolTipContext> myContext = context; - NSPoint thePoint = NSEqualPoints(point, NSZeroPoint) ? [NSEvent mouseLocation] : point; - NSRect screenRect = [[NSScreen screenForPoint:thePoint] frame]; + id<SKImageToolTipContext> theContext = context; NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; if (usedScale <= 0.0) @@ -146,7 +144,7 @@ dispatch_async([[self class] imageQueue], ^{ - NSImage *image = [myContext toolTipImageWithScale:usedScale]; + NSImage *image = [theContext toolTipImageWithScale:usedScale]; dispatch_async(dispatch_get_main_queue(), ^{ // check if another image is enerated or we are fading out @@ -161,6 +159,8 @@ [[self contentView] setContentFilters:isOpaque ? SKColorEffectFilters() : @[]]; + NSPoint thePoint = NSEqualPoints(point, NSZeroPoint) ? [NSEvent mouseLocation] : point; + NSRect screenRect = [[NSScreen screenForPoint:thePoint] frame]; NSRect contentRect = NSZeroRect; contentRect.size = [image size]; contentRect.origin.x = fmin(thePoint.x, NSMaxX(screenRect) - NSWidth(contentRect)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-01 21:55:12
|
Revision: 15138 http://sourceforge.net/p/skim-app/code/15138 Author: hofman Date: 2025-05-01 21:54:51 +0000 (Thu, 01 May 2025) Log Message: ----------- calculate some parameters first rather than async Modified Paths: -------------- trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-05-01 21:43:56 UTC (rev 15137) +++ trunk/SKImageToolTipWindow.m 2025-05-01 21:54:51 UTC (rev 15138) @@ -135,15 +135,18 @@ ++currentRequest; generatingRequest = YES; - NSInteger myRequest =currentRequest; + NSInteger myRequest = currentRequest; + id<SKImageToolTipContext> myContext = context; NSPoint thePoint = NSEqualPoints(point, NSZeroPoint) ? [NSEvent mouseLocation] : point; NSRect screenRect = [[NSScreen screenForPoint:thePoint] frame]; + NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; + CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; + if (usedScale <= 0.0) + usedScale = usedScale < 0.0 ? fmin(scale, -usedScale) : scale; dispatch_async([[self class] imageQueue], ^{ - NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; - CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; - NSImage *image = [context toolTipImageWithScale:usedScale > 0.0 ? usedScale : usedScale < 0.0 ? fmin(scale, -usedScale) : scale]; + NSImage *image = [myContext toolTipImageWithScale:usedScale]; dispatch_async(dispatch_get_main_queue(), ^{ // check if another image is enerated or we are fading out @@ -153,6 +156,7 @@ if (image) { BOOL isOpaque = [[[image representations] firstObject] isOpaque]; + [imageView setImage:image]; [[self contentView] setContentFilters:isOpaque ? SKColorEffectFilters() : @[]]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-05-01 21:44:14
|
Revision: 15137 http://sourceforge.net/p/skim-app/code/15137 Author: hofman Date: 2025-05-01 21:43:56 +0000 (Thu, 01 May 2025) Log Message: ----------- Generate the image for an image tooltip async. Cancel showing when another image is generated or the tooltip is removed while generating. Modified Paths: -------------- trunk/SKImageToolTipWindow.h trunk/SKImageToolTipWindow.m Modified: trunk/SKImageToolTipWindow.h =================================================================== --- trunk/SKImageToolTipWindow.h 2025-04-22 09:07:28 UTC (rev 15136) +++ trunk/SKImageToolTipWindow.h 2025-05-01 21:43:56 UTC (rev 15137) @@ -47,6 +47,8 @@ NSPoint point; CGFloat scale; NSImageView *imageView; + NSInteger currentRequest; + BOOL generatingRequest; } @property (class, nonatomic, readonly) SKImageToolTipWindow *sharedToolTipWindow; Modified: trunk/SKImageToolTipWindow.m =================================================================== --- trunk/SKImageToolTipWindow.m 2025-04-22 09:07:28 UTC (rev 15136) +++ trunk/SKImageToolTipWindow.m 2025-05-01 21:43:56 UTC (rev 15137) @@ -99,7 +99,21 @@ return self; } ++ (dispatch_queue_t)imageQueue { + static dispatch_queue_t imageQueue = nil; + if (imageQueue == nil) { + dispatch_queue_attr_t queuePriority = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_CONCURRENT, QOS_CLASS_DEFAULT, 0); + imageQueue = dispatch_queue_create("net.sourceforge.skim-app.skim.thumbnails.default", queuePriority); + } + return imageQueue; +} + - (void)orderOut:(id)sender { + // ignore any currently generating image + if (generatingRequest) { + ++currentRequest; + generatingRequest = NO; + } context = nil; point = NSZeroPoint; [super orderOut:sender]; @@ -106,6 +120,11 @@ } - (void)fadeOut { + // ignore any currently generating image + if (generatingRequest) { + ++currentRequest; + generatingRequest = NO; + } context = nil; point = NSZeroPoint; [super fadeOut]; @@ -112,36 +131,53 @@ } - (void)showDelayed { - NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; - CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; + if (generatingRequest) + ++currentRequest; + generatingRequest = YES; + + NSInteger myRequest =currentRequest; NSPoint thePoint = NSEqualPoints(point, NSZeroPoint) ? [NSEvent mouseLocation] : point; - NSRect contentRect = NSZeroRect, screenRect = [[NSScreen screenForPoint:thePoint] frame]; - NSImage *image = [context toolTipImageWithScale:usedScale > 0.0 ? usedScale : usedScale < 0.0 ? fmin(scale, -usedScale) : scale]; - BOOL isOpaque = [[[image representations] firstObject] isOpaque]; + NSRect screenRect = [[NSScreen screenForPoint:thePoint] frame]; - if (image) { - [imageView setImage:image]; + dispatch_async([[self class] imageQueue], ^{ - [[self contentView] setContentFilters:isOpaque ? SKColorEffectFilters() : @[]]; + NSNumber *usedScaleNumber = [[NSUserDefaults standardUserDefaults] objectForKey:SKToolTipScaleKey]; + CGFloat usedScale = [usedScaleNumber respondsToSelector:@selector(doubleValue)] ? [usedScaleNumber doubleValue] : DEFAULT_SCALE; + NSImage *image = [context toolTipImageWithScale:usedScale > 0.0 ? usedScale : usedScale < 0.0 ? fmin(scale, -usedScale) : scale]; - contentRect.size = [image size]; - contentRect.origin.x = fmin(thePoint.x, NSMaxX(screenRect) - NSWidth(contentRect)); - contentRect.origin.y = thePoint.y - WINDOW_OFFSET - NSHeight(contentRect); - contentRect = [self frameRectForContentRect:contentRect]; - if (NSMinY(contentRect) < NSMinX(screenRect)) - contentRect.origin.y = thePoint.y + WINDOW_OFFSET; - [self setFrame:contentRect display:NO]; - - if ([self isVisible] && [self alphaValue] > CRITICAL_ALPHA_VALUE) - [self orderFront:self]; - else - [self fadeIn]; - - } else { - - [self fadeOut]; - - } + dispatch_async(dispatch_get_main_queue(), ^{ + // check if another image is enerated or we are fading out + if (myRequest != currentRequest) + return; + generatingRequest = NO; + + if (image) { + BOOL isOpaque = [[[image representations] firstObject] isOpaque]; + [imageView setImage:image]; + + [[self contentView] setContentFilters:isOpaque ? SKColorEffectFilters() : @[]]; + + NSRect contentRect = NSZeroRect; + contentRect.size = [image size]; + contentRect.origin.x = fmin(thePoint.x, NSMaxX(screenRect) - NSWidth(contentRect)); + contentRect.origin.y = thePoint.y - WINDOW_OFFSET - NSHeight(contentRect); + contentRect = [self frameRectForContentRect:contentRect]; + if (NSMinY(contentRect) < NSMinX(screenRect)) + contentRect.origin.y = thePoint.y + WINDOW_OFFSET; + [self setFrame:contentRect display:NO]; + + if ([self isVisible] && [self alphaValue] > CRITICAL_ALPHA_VALUE) + [self orderFront:self]; + else + [self fadeIn]; + + } else { + + [self fadeOut]; + + } + }); + }); } - (void)stopAnimation { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-22 09:07:46
|
Revision: 15136 http://sourceforge.net/p/skim-app/code/15136 Author: hofman Date: 2025-04-22 09:07:28 +0000 (Tue, 22 Apr 2025) Log Message: ----------- fix typo in Chinese localization Modified Paths: -------------- trunk/zh_CN.lproj/Localizable.strings Modified: trunk/zh_CN.lproj/Localizable.strings =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-14 15:44:04
|
Revision: 15135 http://sourceforge.net/p/skim-app/code/15135 Author: hofman Date: 2025-04-14 15:43:46 +0000 (Mon, 14 Apr 2025) Log Message: ----------- Allow drawing in presentation mode for resized window when holding shift Modified Paths: -------------- trunk/SKPresentationView.m Modified: trunk/SKPresentationView.m =================================================================== --- trunk/SKPresentationView.m 2025-04-14 14:43:22 UTC (rev 15134) +++ trunk/SKPresentationView.m 2025-04-14 15:43:46 UTC (rev 15135) @@ -467,7 +467,7 @@ [self toggleBlackout:nil]; else [self goToNextPage:self]; - } else if (IS_TABLET_EVENT(theEvent, NSPointingDeviceTypePen) == NO && ([[self window] styleMask] & NSWindowStyleMaskResizable) != 0 && NSEqualRects([[self window] frame], [[[self window] screen] frame]) == NO) { + } else if (IS_TABLET_EVENT(theEvent, NSPointingDeviceTypePen) == NO && ([[self window] styleMask] & NSWindowStyleMaskResizable) != 0 && NSEqualRects([[self window] frame], [[[self window] screen] frame]) == NO && (pvFlags.enableDrawing == NO || ([theEvent modifierFlags] & NSEventModifierFlagShift) == 0)) { pvFlags.cursorHidden = NO; [[NSCursor closedHandCursor] set]; [self doDragWindowWithEvent:theEvent]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-14 14:43:40
|
Revision: 15134 http://sourceforge.net/p/skim-app/code/15134 Author: hofman Date: 2025-04-14 14:43:22 +0000 (Mon, 14 Apr 2025) Log Message: ----------- Simplify dragging from dra image view Modified Paths: -------------- trunk/SKDragImageView.m Modified: trunk/SKDragImageView.m =================================================================== --- trunk/SKDragImageView.m 2025-04-14 14:01:45 UTC (rev 15133) +++ trunk/SKDragImageView.m 2025-04-14 14:43:22 UTC (rev 15134) @@ -122,45 +122,24 @@ - (void)mouseDown:(NSEvent *)theEvent { if ([self isEditable] == NO) { - return; } else if ([theEvent clickCount] == 2) { [self show:self]; - return; - } - - NSEvent *downEvent = theEvent; - BOOL keepOn = YES; - BOOL isInside = YES; - NSPoint mouseLoc; - while(keepOn){ + } else if ([delegate respondsToSelector:@selector(draggedObjectForDragImageView)]) { + NSEvent *downEvent = theEvent; theEvent = [[self window] nextEventMatchingMask: NSEventMaskLeftMouseUp | NSEventMaskLeftMouseDragged]; - mouseLoc = [theEvent locationInView:self]; - isInside = [self mouse:mouseLoc inRect:[self bounds]]; - switch ([theEvent type]) { - case NSEventTypeLeftMouseDragged: - if(isInside && [delegate respondsToSelector:@selector(draggedObjectForDragImageView)]) { - id<NSPasteboardWriting> object = [delegate draggedObjectForDragImageView]; - if (object) { - - NSRect bounds = [self bounds]; - - NSImage *dragImage = [NSImage bitmapImageWithSize:bounds.size forView:self drawingHandler:^(NSRect rect){ - [[self cell] drawInteriorWithFrame:rect inView:self]; - }]; - - NSDraggingItem *dragItem = [[NSDraggingItem alloc] initWithPasteboardWriter:object]; - [dragItem setDraggingFrame:bounds contents:dragImage]; - [self beginDraggingSessionWithItems:@[dragItem] event:downEvent source:self]; - } - keepOn = NO; - break; - } - case NSEventTypeLeftMouseUp: - keepOn = NO; - break; - default: - keepOn = NO; - break; + if ([theEvent type] == NSEventTypeLeftMouseDragged) { + id<NSPasteboardWriting> object = [delegate draggedObjectForDragImageView]; + if (object) { + NSRect bounds = [self bounds]; + + NSImage *dragImage = [NSImage bitmapImageWithSize:bounds.size forView:self drawingHandler:^(NSRect rect){ + [[self cell] drawInteriorWithFrame:rect inView:self]; + }]; + + NSDraggingItem *dragItem = [[NSDraggingItem alloc] initWithPasteboardWriter:object]; + [dragItem setDraggingFrame:bounds contents:dragImage]; + [self beginDraggingSessionWithItems:@[dragItem] event:downEvent source:self]; + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-14 14:02:03
|
Revision: 15133 http://sourceforge.net/p/skim-app/code/15133 Author: hofman Date: 2025-04-14 14:01:45 +0000 (Mon, 14 Apr 2025) Log Message: ----------- return nil from hitTest: for subviews of color swatch used for drawing Modified Paths: -------------- trunk/SKColorSwatch.m Modified: trunk/SKColorSwatch.m =================================================================== --- trunk/SKColorSwatch.m 2025-04-14 08:48:44 UTC (rev 15132) +++ trunk/SKColorSwatch.m 2025-04-14 14:01:45 UTC (rev 15133) @@ -903,6 +903,10 @@ - (void)performClick:(id)sender {} +- (NSView *)hitTest:(NSPoint)point { + return nil; +} + - (BOOL)isAccessibilityElement { return NO; } @@ -1034,6 +1038,10 @@ [NSGraphicsContext restoreGraphicsState]; } +- (NSView *)hitTest:(NSPoint)point { + return nil; +} + - (BOOL)isAccessibilityElement { return YES; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-14 08:49:01
|
Revision: 15132 http://sourceforge.net/p/skim-app/code/15132 Author: hofman Date: 2025-04-14 08:48:44 +0000 (Mon, 14 Apr 2025) Log Message: ----------- Tag for release Added Paths: ----------- tags/REL_1_7_9/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-14 08:48:24
|
Revision: 15131 http://sourceforge.net/p/skim-app/code/15131 Author: hofman Date: 2025-04-14 08:48:06 +0000 (Mon, 14 Apr 2025) Log Message: ----------- Update version numbers for release Modified Paths: -------------- trunk/Info.plist trunk/Skim.xcodeproj/project.pbxproj Modified: trunk/Info.plist =================================================================== --- trunk/Info.plist 2025-04-13 16:38:19 UTC (rev 15130) +++ trunk/Info.plist 2025-04-14 08:48:06 UTC (rev 15131) @@ -310,7 +310,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.7.8</string> + <string>1.7.9</string> <key>CFBundleSignature</key> <string>SKim</string> <key>CFBundleURLTypes</key> Modified: trunk/Skim.xcodeproj/project.pbxproj =================================================================== --- trunk/Skim.xcodeproj/project.pbxproj 2025-04-13 16:38:19 UTC (rev 15130) +++ trunk/Skim.xcodeproj/project.pbxproj 2025-04-14 08:48:06 UTC (rev 15131) @@ -3803,7 +3803,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = CE17EE460E24ED7C00DE06EA /* Skim-App.xcconfig */; buildSettings = { - CURRENT_PROJECT_VERSION = 160; + CURRENT_PROJECT_VERSION = 161; }; name = Debug; }; @@ -3811,7 +3811,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = CE17EE460E24ED7C00DE06EA /* Skim-App.xcconfig */; buildSettings = { - CURRENT_PROJECT_VERSION = 160; + CURRENT_PROJECT_VERSION = 161; }; name = Release; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-13 16:38:35
|
Revision: 15130 http://sourceforge.net/p/skim-app/code/15130 Author: hofman Date: 2025-04-13 16:38:19 +0000 (Sun, 13 Apr 2025) Log Message: ----------- Use local variable for view Modified Paths: -------------- trunk/SKMainToolbarController.m Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2025-04-13 16:08:00 UTC (rev 15129) +++ trunk/SKMainToolbarController.m 2025-04-13 16:38:19 UTC (rev 15130) @@ -923,12 +923,13 @@ [[shareButton menuForSegment:0] removeAllItems]; item = [item copy]; [item setEnabled:YES]; - if ([[item view] respondsToSelector:@selector(setEnabled:)]) - [(NSControl *)[item view] setEnabled:YES]; - if ([[item view] respondsToSelector:@selector(setEnabledForAllSegments:)]) - [(NSSegmentedControl *)[item view] setEnabledForAllSegments:YES]; - if ([[item view] respondsToSelector:@selector(setControlSize:)]) - [(NSControl *)[item view] setControlSize:NSControlSizeRegular]; + id view = [item view]; + if ([view respondsToSelector:@selector(setEnabled:)]) + [view setEnabled:YES]; + if ([view respondsToSelector:@selector(setEnabledForAllSegments:)]) + [view setEnabledForAllSegments:YES]; + if ([view respondsToSelector:@selector(setControlSize:)]) + [view setControlSize:NSControlSizeRegular]; } return item; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-13 16:08:23
|
Revision: 15129 http://sourceforge.net/p/skim-app/code/15129 Author: hofman Date: 2025-04-13 16:08:00 +0000 (Sun, 13 Apr 2025) Log Message: ----------- Use local variables, simplify check for disabled drawing Modified Paths: -------------- trunk/SKColorSwatch.m Modified: trunk/SKColorSwatch.m =================================================================== --- trunk/SKColorSwatch.m 2025-04-13 15:14:38 UTC (rev 15128) +++ trunk/SKColorSwatch.m 2025-04-13 16:08:00 UTC (rev 15129) @@ -965,10 +965,13 @@ if (NSWidth(rect) < 5.0) return; rect = NSInsetRect(rect, COLOR_INSET, COLOR_INSET); - CGFloat r = cornerRadius([(SKColorSwatch *)[self superview] controlSize]); + SKColorSwatch *colorSwatch = (SKColorSwatch *)[self superview]; + CGFloat r = cornerRadius([colorSwatch controlSize]); BOOL disabled = NO; - if (@available(macOS 10.14, *)) - disabled = [[self window] isMainWindow] == NO && [[self window] isKeyWindow] == NO && ([self isDescendantOf:[[self window] contentView]] == NO || [[self window] isKindOfClass:NSClassFromString(@"NSToolbarSnapshotWindow")]); + if (@available(macOS 10.14, *)) { + NSWindow *window = [self window]; + disabled = [window isMainWindow] == NO && [window isKeyWindow] == NO && [[colorSwatch superview] isDescendantOf:[window contentView]] == NO; + } CGFloat stroke = [[NSWorkspace sharedWorkspace] accessibilityDisplayShouldIncreaseContrast] ? 0.55 : 0.25; NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:NSInsetRect(rect, 0.5, 0.5) xRadius:r - 0.5 yRadius:r - 0.5]; @@ -1022,8 +1025,8 @@ [path lineToPoint:NSMakePoint(NSMaxX(rect) + 0.5, NSMaxY(rect) + 1.0)]; } [path setLineWidth:3.0]; - if ((dropLocation == SKColorSwatchDropBefore && NSMinX([[self superview] bounds]) + COLOR_INSET >= NSMinX([self frame])) || - (dropLocation == SKColorSwatchDropAfter && NSMaxX([[self superview] bounds]) - COLOR_INSET <= NSMaxX([self frame]))) + if ((dropLocation == SKColorSwatchDropBefore && NSMinX([colorSwatch bounds]) + COLOR_INSET >= NSMinX([self frame])) || + (dropLocation == SKColorSwatchDropAfter && NSMaxX([colorSwatch bounds]) - COLOR_INSET <= NSMaxX([self frame]))) [[NSBezierPath bezierPathWithRoundedRect:NSInsetRect(rect, -COLOR_INSET, -COLOR_INSET) xRadius:r + COLOR_INSET yRadius:r + COLOR_INSET] addClip]; [path stroke]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-13 15:14:55
|
Revision: 15128 http://sourceforge.net/p/skim-app/code/15128 Author: hofman Date: 2025-04-13 15:14:38 +0000 (Sun, 13 Apr 2025) Log Message: ----------- fix typo in description Modified Paths: -------------- trunk/SKMainToolbarController.m Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2025-04-13 14:14:56 UTC (rev 15127) +++ trunk/SKMainToolbarController.m 2025-04-13 15:14:38 UTC (rev 15128) @@ -375,7 +375,7 @@ NSToolbarItem *item2 = [[NSToolbarItem alloc] initWithItemIdentifier:@""]; [item2 setLabels:NSLocalizedString(@"Zoom In", @"Toolbar item label")]; [item2 setEnabled:[mainController.pdfView canZoomIn]]; - menuItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Zoom In", @"Menun item title") action:@selector(doZoomIn:) target:mainController]; + menuItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Zoom In", @"Menu item title") action:@selector(doZoomIn:) target:mainController]; [item2 setMenuFormRepresentation:menuItem]; [(NSToolbarItemGroup *)item setSubitems:@[item1, item2]]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-13 14:15:13
|
Revision: 15127 http://sourceforge.net/p/skim-app/code/15127 Author: hofman Date: 2025-04-13 14:14:56 +0000 (Sun, 13 Apr 2025) Log Message: ----------- Validate previous/next/first/last toolbar item subitmes Modified Paths: -------------- trunk/SKMainToolbarController.m Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2025-04-12 21:33:46 UTC (rev 15126) +++ trunk/SKMainToolbarController.m 2025-04-13 14:14:56 UTC (rev 15127) @@ -280,11 +280,15 @@ [item setMenuFormRepresentation:menuItem]; NSToolbarItem *item1 = [[NSToolbarItem alloc] initWithItemIdentifier:@""]; + [item1 setEnabled:[mainController.pdfView canGoToFirstPage]]; NSToolbarItem *item2 = [[NSToolbarItem alloc] initWithItemIdentifier:@""]; [item2 setLabels:NSLocalizedString(@"Previous", @"Toolbar item label")]; + [item2 setEnabled:[mainController.pdfView canGoToPreviousPage]]; NSToolbarItem *item3 = [[NSToolbarItem alloc] initWithItemIdentifier:@""]; [item3 setLabels:NSLocalizedString(@"Next", @"Toolbar item label")]; + [item3 setEnabled:[mainController.pdfView canGoToNextPage]]; NSToolbarItem *item4 = [[NSToolbarItem alloc] initWithItemIdentifier:@""]; + [item4 setEnabled:[mainController.pdfView canGoToLastPage]]; [(NSToolbarItemGroup *)item setSubitems:@[item1, item2, item3, item4]]; } else if ([identifier isEqualToString:SKDocumentToolbarBackForwardItemIdentifier]) { @@ -1386,6 +1390,11 @@ NSArray *subitems = [(NSToolbarItemGroup *)[toolbarItems objectForKey:SKDocumentToolbarPreviousNextItemIdentifier] subitems]; [[subitems objectAtIndex:0] setEnabled:[mainController.pdfView canGoToPreviousPage]]; [[subitems objectAtIndex:1] setEnabled:[mainController.pdfView canGoToNextPage]]; + subitems = [(NSToolbarItemGroup *)[toolbarItems objectForKey:SKDocumentToolbarPreviousNextFirstLastItemIdentifier] subitems]; + [[subitems objectAtIndex:0] setEnabled:[mainController.pdfView canGoToFirstPage]]; + [[subitems objectAtIndex:1] setEnabled:[mainController.pdfView canGoToPreviousPage]]; + [[subitems objectAtIndex:2] setEnabled:[mainController.pdfView canGoToNextPage]]; + [[subitems objectAtIndex:3] setEnabled:[mainController.pdfView canGoToLastPage]]; } - (void)handleScaleChangedNotification:(NSNotification *)notification { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-12 21:34:02
|
Revision: 15126 http://sourceforge.net/p/skim-app/code/15126 Author: hofman Date: 2025-04-12 21:33:46 +0000 (Sat, 12 Apr 2025) Log Message: ----------- don't add flexible spaces to default toolbar Modified Paths: -------------- trunk/SKMainToolbarController.m Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2025-04-12 18:06:35 UTC (rev 15125) +++ trunk/SKMainToolbarController.m 2025-04-12 21:33:46 UTC (rev 15126) @@ -934,9 +934,7 @@ return @[SKDocumentToolbarPreviousNextItemIdentifier, SKDocumentToolbarPageNumberItemIdentifier, SKDocumentToolbarZoomInActualOutItemIdentifier, - NSToolbarFlexibleSpaceItemIdentifier, SKDocumentToolbarToolModeItemIdentifier, - NSToolbarFlexibleSpaceItemIdentifier, SKDocumentToolbarNewNoteItemIdentifier]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-12 18:06:51
|
Revision: 15125 http://sourceforge.net/p/skim-app/code/15125 Author: hofman Date: 2025-04-12 18:06:35 +0000 (Sat, 12 Apr 2025) Log Message: ----------- Add flexible space items to default toolbar items Modified Paths: -------------- trunk/SKMainToolbarController.m Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2025-04-12 17:57:33 UTC (rev 15124) +++ trunk/SKMainToolbarController.m 2025-04-12 18:06:35 UTC (rev 15125) @@ -932,9 +932,11 @@ - (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar { return @[SKDocumentToolbarPreviousNextItemIdentifier, - SKDocumentToolbarPageNumberItemIdentifier, - SKDocumentToolbarZoomInActualOutItemIdentifier, - SKDocumentToolbarToolModeItemIdentifier, + SKDocumentToolbarPageNumberItemIdentifier, + SKDocumentToolbarZoomInActualOutItemIdentifier, + NSToolbarFlexibleSpaceItemIdentifier, + SKDocumentToolbarToolModeItemIdentifier, + NSToolbarFlexibleSpaceItemIdentifier, SKDocumentToolbarNewNoteItemIdentifier]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2025-04-12 17:57:50
|
Revision: 15124 http://sourceforge.net/p/skim-app/code/15124 Author: hofman Date: 2025-04-12 17:57:33 +0000 (Sat, 12 Apr 2025) Log Message: ----------- Separator toolbar item is not supported for a long time Modified Paths: -------------- trunk/SKBookmarkController.m trunk/SKMainToolbarController.m trunk/SKNotesDocument.m Modified: trunk/SKBookmarkController.m =================================================================== --- trunk/SKBookmarkController.m 2025-04-12 16:59:33 UTC (rev 15123) +++ trunk/SKBookmarkController.m 2025-04-12 17:57:33 UTC (rev 15124) @@ -1236,8 +1236,7 @@ SKBookmarksDeleteToolbarItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, - NSToolbarSeparatorItemIdentifier, - NSToolbarCustomizeToolbarItemIdentifier]; + NSToolbarSeparatorItemIdentifier]; } - (BOOL)validateMenuItem:(NSMenuItem *)menuItem { Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2025-04-12 16:59:33 UTC (rev 15123) +++ trunk/SKMainToolbarController.m 2025-04-12 17:57:33 UTC (rev 15124) @@ -985,8 +985,7 @@ SKDocumentToolbarInfoItemIdentifier, SKDocumentToolbarPrintItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, - NSToolbarSpaceItemIdentifier, - NSToolbarSeparatorItemIdentifier]; + NSToolbarSpaceItemIdentifier]; } - (BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem { Modified: trunk/SKNotesDocument.m =================================================================== --- trunk/SKNotesDocument.m 2025-04-12 16:59:33 UTC (rev 15123) +++ trunk/SKNotesDocument.m 2025-04-12 17:57:33 UTC (rev 15124) @@ -946,8 +946,7 @@ NSToolbarPrintItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, - NSToolbarSeparatorItemIdentifier, - NSToolbarCustomizeToolbarItemIdentifier]; + NSToolbarSeparatorItemIdentifier]; } - (BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |