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
(39) |
Oct
|
Nov
|
Dec
|
From: <ho...@us...> - 2010-07-17 21:02:01
|
Revision: 6630 http://skim-app.svn.sourceforge.net/skim-app/?rev=6630&view=rev Author: hofman Date: 2010-07-17 21:01:54 +0000 (Sat, 17 Jul 2010) Log Message: ----------- replace fullscreen and presentation flags by a single interactionMode property Modified Paths: -------------- trunk/SKApplicationController.m trunk/SKFullScreenWindow.m trunk/SKMainToolbarController.m trunk/SKMainWindowController.h trunk/SKMainWindowController.m trunk/SKMainWindowController_Actions.m trunk/SKMainWindowController_UI.m trunk/SKPDFView.h trunk/SKSideWindow.m Modified: trunk/SKApplicationController.m =================================================================== --- trunk/SKApplicationController.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKApplicationController.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -161,10 +161,10 @@ id doc = [[[aNotification object] windowController] document]; SKMainWindowController *mwc = [doc respondsToSelector:@selector(mainWindowController)] ? [doc mainWindowController] : nil; if ([[[mwc window] screen] isEqual:[[NSScreen screens] objectAtIndex:0]]) { - if ([mwc isPresentation]) { + if ([mwc interactionMode] == SKPresentationMode) { mode = kUIModeAllHidden; options = kUIOptionDisableProcessSwitch; - } else if ([mwc isFullScreen]) { + } else if ([mwc interactionMode] == SKFullScreenMode) { mode = kUIModeAllHidden; options = kUIOptionAutoShowMenuBar; } Modified: trunk/SKFullScreenWindow.m =================================================================== --- trunk/SKFullScreenWindow.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKFullScreenWindow.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -82,7 +82,7 @@ - (void)sendEvent:(NSEvent *)theEvent { if (canBecomeMain && ([theEvent type] == NSLeftMouseDown || [theEvent type] == NSRightMouseDown)) { SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; - if ([wc isPresentation] && ([theEvent type] == NSRightMouseDown || ([theEvent modifierFlags] & NSControlKeyMask))) { + if ([wc interactionMode] == SKPresentationMode && ([theEvent type] == NSRightMouseDown || ([theEvent modifierFlags] & NSControlKeyMask))) { [wc doGoToPreviousPage:self]; return; } Modified: trunk/SKMainToolbarController.m =================================================================== --- trunk/SKMainToolbarController.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKMainToolbarController.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -793,13 +793,13 @@ SEL action = [menuItem action]; if (action == @selector(createNewTextNote:)) { [menuItem setState:[textNoteButton tagForSegment:0] == [menuItem tag] ? NSOnState : NSOffState]; - return [mainController isPresentation] == NO && ([mainController.pdfView toolMode] == SKTextToolMode || [mainController.pdfView toolMode] == SKNoteToolMode) && [mainController.pdfView hideNotes] == NO; + return [mainController interactionMode] != SKPresentationMode && ([mainController.pdfView toolMode] == SKTextToolMode || [mainController.pdfView toolMode] == SKNoteToolMode) && [mainController.pdfView hideNotes] == NO; } else if (action == @selector(createNewCircleNote:)) { [menuItem setState:[circleNoteButton tagForSegment:0] == [menuItem tag] ? NSOnState : NSOffState]; - return [mainController isPresentation] == NO && ([mainController.pdfView toolMode] == SKTextToolMode || [mainController.pdfView toolMode] == SKNoteToolMode) && [mainController.pdfView hideNotes] == NO; + return [mainController interactionMode] != SKPresentationMode && ([mainController.pdfView toolMode] == SKTextToolMode || [mainController.pdfView toolMode] == SKNoteToolMode) && [mainController.pdfView hideNotes] == NO; } else if (action == @selector(createNewMarkupNote:)) { [menuItem setState:[markupNoteButton tagForSegment:0] == [menuItem tag] ? NSOnState : NSOffState]; - return [mainController isPresentation] == NO && ([mainController.pdfView toolMode] == SKTextToolMode || [mainController.pdfView toolMode] == SKNoteToolMode) && [mainController.pdfView hideNotes] == NO && [[mainController.pdfView currentSelection] hasCharacters]; + return [mainController interactionMode] != SKPresentationMode && ([mainController.pdfView toolMode] == SKTextToolMode || [mainController.pdfView toolMode] == SKNoteToolMode) && [mainController.pdfView hideNotes] == NO && [[mainController.pdfView currentSelection] hasCharacters]; } return YES; } Modified: trunk/SKMainWindowController.h =================================================================== --- trunk/SKMainWindowController.h 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKMainWindowController.h 2010-07-17 21:01:54 UTC (rev 6630) @@ -60,6 +60,13 @@ typedef NSInteger SKFindPaneState; enum { + SKNormalMode, + SKFullScreenMode, + SKPresentationMode +}; +typedef NSInteger SKInteractionMode; + +enum { SKDefaultWindowOption, SKMaximizeWindowOption, SKFitWindowOption @@ -117,6 +124,8 @@ SKSideWindow *rightSideWindow; NSMutableArray *blankingWindows; + SKInteractionMode interactionMode; + SKProgressController *progressController; SKPresentationOptionsSheetController *presentationSheetController; @@ -170,7 +179,6 @@ unsigned int updatingFontAttributes:1; unsigned int updatingLine:1; unsigned int settingUpWindow:1; - unsigned int isPresentation:1; unsigned int usesDrawers:1; unsigned int isEditingPDF:1; unsigned int isEditingTable:1; @@ -256,8 +264,10 @@ @property (nonatomic) NSUInteger pageNumber; @property (nonatomic, copy) NSString *pageLabel; -@property (nonatomic, readonly) BOOL isFullScreen, isPresentation, autoScales; +@property (nonatomic, readonly) SKInteractionMode interactionMode; +@property (nonatomic, readonly) BOOL autoScales; + @property (nonatomic) SKLeftSidePaneState leftSidePaneState; @property (nonatomic) SKRightSidePaneState rightSidePaneState; @property (nonatomic) SKFindPaneState findPaneState; Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKMainWindowController.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -193,8 +193,8 @@ @implementation SKMainWindowController -@synthesize mainWindow, splitView, centerContentView, pdfSplitView, pdfContentView, pdfView, leftSideController, rightSideController, toolbarController, leftSideContentView, rightSideContentView, progressController, presentationNotesDocument, tags, rating, pageNumber, pageLabel; -@dynamic pdfDocument, presentationOptions, selectedNotes, isPresentation, isFullScreen, autoScales, leftSidePaneState, rightSidePaneState, findPaneState, leftSidePaneIsOpen, rightSidePaneIsOpen; +@synthesize mainWindow, splitView, centerContentView, pdfSplitView, pdfContentView, pdfView, leftSideController, rightSideController, toolbarController, leftSideContentView, rightSideContentView, progressController, presentationNotesDocument, tags, rating, pageNumber, pageLabel, interactionMode; +@dynamic pdfDocument, presentationOptions, selectedNotes, autoScales, leftSidePaneState, rightSidePaneState, findPaneState, leftSidePaneIsOpen, rightSidePaneIsOpen; + (void)initialize { SKINITIALIZE; @@ -211,7 +211,7 @@ - (id)init { if (self = [super initWithWindowNibName:@"MainWindow"]) { - mwcFlags.isPresentation = 0; + interactionMode = SKNormalMode; searchResults = [[NSMutableArray alloc] init]; mwcFlags.findPanelFind = 0; mwcFlags.caseInsensitiveSearch = 1; @@ -519,10 +519,10 @@ if ([snapshotSetups count]) [self showSnapshotsWithSetups:snapshotSetups]; - if ([self isFullScreen] || [self isPresentation]) - [savedNormalSetup addEntriesFromDictionary:setup]; - else + if ([self interactionMode] == SKNormalMode) [self applyPDFSettings:setup]; + else + [savedNormalSetup addEntriesFromDictionary:setup]; } } @@ -535,11 +535,11 @@ [setup setObject:[NSNumber numberWithUnsignedInteger:[[pdfView currentPage] pageIndex]] forKey:PAGEINDEX_KEY]; if ([snapshots count]) [setup setObject:[snapshots valueForKey:SKSnapshotCurrentSetupKey] forKey:SNAPSHOTS_KEY]; - if ([self isFullScreen] || [self isPresentation]) { + if ([self interactionMode] == SKNormalMode) { + [setup addEntriesFromDictionary:[self currentPDFSettings]]; + } else { [setup addEntriesFromDictionary:savedNormalSetup]; [setup removeObjectsForKeys:[NSArray arrayWithObjects:HASHORIZONTALSCROLLER_KEY, HASVERTICALSCROLLER_KEY, AUTOHIDESSCROLLERS_KEY, nil]]; - } else { - [setup addEntriesFromDictionary:[self currentPDFSettings]]; } return setup; @@ -564,7 +564,7 @@ - (NSDictionary *)currentPDFSettings { NSMutableDictionary *setup = [NSMutableDictionary dictionary]; - if ([self isPresentation]) { + if ([self interactionMode] == SKPresentationMode) { [setup setDictionary:savedNormalSetup]; [setup removeObjectsForKeys:[NSArray arrayWithObjects:HASHORIZONTALSCROLLER_KEY, HASVERTICALSCROLLER_KEY, AUTOHIDESSCROLLERS_KEY, nil]]; } else { @@ -884,14 +884,6 @@ return YES; } -- (BOOL)isFullScreen { - return [self isWindowLoaded] && [self window] != mainWindow && mwcFlags.isPresentation == 0; -} - -- (BOOL)isPresentation { - return mwcFlags.isPresentation; -} - - (BOOL)autoScales { return [pdfView autoScales]; } @@ -952,9 +944,9 @@ - (BOOL)leftSidePaneIsOpen { NSInteger state; - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) state = [leftSideWindow state]; - else if ([self isPresentation]) + else if ([self interactionMode] == SKPresentationMode) state = [leftSideWindow isVisible]; else if (mwcFlags.usesDrawers) state = [leftSideDrawer state]; @@ -965,9 +957,9 @@ - (BOOL)rightSidePaneIsOpen { NSInteger state; - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) state = [rightSideWindow state]; - else if ([self isPresentation]) + else if ([self interactionMode] == SKPresentationMode) state = [rightSideWindow isVisible]; else if (mwcFlags.usesDrawers) state = [rightSideDrawer state]; @@ -1216,7 +1208,7 @@ [[leftSideController.view window] makeFirstResponder:nil]; [leftSideWindow setMainView:leftSideController.view]; - if ([self isPresentation]) { + if ([self interactionMode] == SKPresentationMode) { mwcFlags.savedLeftSidePaneState = [self leftSidePaneState]; [self setLeftSidePaneState:SKThumbnailSidePaneState]; [leftSideWindow setAlphaValue:PRESENTATION_SIDE_WINDOW_ALPHA]; @@ -1238,7 +1230,7 @@ [[rightSideController.view window] makeFirstResponder:nil]; [rightSideWindow setMainView:rightSideController.view]; - if ([self isPresentation]) { + if ([self interactionMode] == SKPresentationMode) { [rightSideWindow setAlphaValue:PRESENTATION_SIDE_WINDOW_ALPHA]; [rightSideWindow setEnabled:NO]; [rightSideWindow attachToWindow:[self window] onScreen:screen]; @@ -1302,18 +1294,18 @@ - (void)goFullScreen { NSScreen *screen = [[self window] screen] ?: [NSScreen mainScreen]; // @@ screen: or should we use the main screen? - NSColor *backgroundColor = [self isPresentation] ? [NSColor blackColor] : [[NSUserDefaults standardUserDefaults] colorForKey:SKFullScreenBackgroundColorKey]; - NSInteger level = [self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel; + NSColor *backgroundColor = [self interactionMode] == SKPresentationMode ? [NSColor blackColor] : [[NSUserDefaults standardUserDefaults] colorForKey:SKFullScreenBackgroundColorKey]; + NSInteger level = [self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel; // create a new full screen window SKFullScreenWindow *fullScreenWindow = [[[SKFullScreenWindow alloc] initWithScreen:screen] autorelease]; if ([[mainWindow firstResponder] isDescendantOf:pdfView]) [mainWindow makeFirstResponder:nil]; - [fullScreenWindow setMainView:([self isPresentation] ? (id)pdfView : (id)pdfSplitView)]; + [fullScreenWindow setMainView:([self interactionMode] == SKPresentationMode ? (id)pdfView : (id)pdfSplitView)]; [fullScreenWindow setBackgroundColor:backgroundColor]; [fullScreenWindow setLevel:level]; - [pdfView setBackgroundColor:[self isPresentation] ? [NSColor clearColor] : backgroundColor]; + [pdfView setBackgroundColor:[self interactionMode] == SKPresentationMode ? [NSColor clearColor] : backgroundColor]; [secondaryPdfView setBackgroundColor:backgroundColor]; [pdfView layoutDocumentView]; [pdfView setNeedsDisplay:YES]; @@ -1323,7 +1315,7 @@ [(id)wc setForceOnTop:YES]; } - if (NO == [self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKBlankAllScreensInFullScreenKey] && [[NSScreen screens] count] > 1) { + if (NO == [self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKBlankAllScreensInFullScreenKey] && [[NSScreen screens] count] > 1) { if (nil == blankingWindows) blankingWindows = [[NSMutableArray alloc] init]; [blankingWindows removeAllObjects]; @@ -1362,7 +1354,7 @@ - (void)enterPresentationMode { NSScrollView *scrollView = [[pdfView documentView] enclosingScrollView]; - if ([self isFullScreen] == NO) + if ([self interactionMode] == SKNormalMode) [self saveNormalSetup]; // Set up presentation mode [pdfView setAutoScales:YES]; @@ -1390,8 +1382,6 @@ // prevent sleep if (activityAssertionID == kIOPMNullAssertionID && kIOReturnSuccess != IOPMAssertionCreate(kIOPMAssertionTypeNoDisplaySleep, kIOPMAssertionLevelOn, &activityAssertionID)) activityAssertionID = kIOPMNullAssertionID; - - mwcFlags.isPresentation = 1; } - (void)exitPresentationMode { @@ -1405,21 +1395,23 @@ [scrollView setAutohidesScrollers:[[savedNormalSetup objectForKey:AUTOHIDESSCROLLERS_KEY] boolValue]]; [self hideLeftSideWindow]; - - mwcFlags.isPresentation = 0; } - (IBAction)enterFullScreen:(id)sender { - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) return; + BOOL wasPresentation = [self interactionMode] == SKPresentationMode; + NSScreen *screen = [[self window] screen] ?: [NSScreen mainScreen]; // @@ screen: or should we use the main screen? if ([screen isEqual:[[NSScreen screens] objectAtIndex:0]]) SetSystemUIMode(kUIModeAllHidden, kUIOptionAutoShowMenuBar); - else if ([self isPresentation]) + else if (wasPresentation) SetSystemUIMode(kUIModeNormal, 0); - if ([self isPresentation]) { + interactionMode = SKFullScreenMode; + + if (wasPresentation) { [self exitPresentationMode]; [pdfView setFrame:[pdfContentView bounds]]; [pdfContentView addSubview:pdfView]; @@ -1444,10 +1436,10 @@ } - (IBAction)enterPresentation:(id)sender { - if ([self isPresentation]) + if ([self interactionMode] == SKPresentationMode) return; - BOOL wasFullScreen = [self isFullScreen]; + BOOL wasFullScreen = [self interactionMode] == SKFullScreenMode; [self enterPresentationMode]; @@ -1457,6 +1449,8 @@ else SetSystemUIMode(kUIModeNormal, 0); + interactionMode = SKPresentationMode; + if (wasFullScreen) { [pdfSplitView setFrame:[centerContentView bounds]]; [centerContentView addSubview:pdfSplitView]; @@ -1470,10 +1464,10 @@ } - (IBAction)exitFullScreen:(id)sender { - if ([self isFullScreen] == NO && [self isPresentation] == NO) + if ([self interactionMode] == SKNormalMode) return; - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) [self hideSideWindows]; if ([[[self window] firstResponder] isDescendantOf:pdfView]) @@ -1497,7 +1491,7 @@ [fadeWindow release]; // this should be done before exitPresentationMode to get a smooth transition - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { [pdfSplitView setFrame:[centerContentView bounds]]; [centerContentView addSubview:pdfSplitView]; } else { @@ -1508,7 +1502,7 @@ [secondaryPdfView setBackgroundColor:[[NSUserDefaults standardUserDefaults] colorForKey:SKBackgroundColorKey]]; [pdfView layoutDocumentView]; - if ([self isPresentation]) + if ([self interactionMode] == SKPresentationMode) [self exitPresentationMode]; else [self applyPDFSettings:savedNormalSetup]; @@ -1522,6 +1516,8 @@ SetSystemUIMode(kUIModeNormal, 0); + interactionMode = SKNormalMode; + [self setWindow:mainWindow]; // trick to make sure the main window shows up in the same space as the fullscreen window [fullScreenWindow addChildWindow:mainWindow ordered:NSWindowBelow]; @@ -1971,7 +1967,7 @@ rect:rect autoFits:autoFits]; - [swc setForceOnTop:[self isFullScreen] || [self isPresentation]]; + [swc setForceOnTop:[self interactionMode] != SKNormalMode]; [[swc window] setHidesOnDeactivate:snapshotsOnTop]; [[self document] addWindowController:swc]; @@ -1990,7 +1986,7 @@ [swc setPdfDocument:[pdfView document] setup:setup]; - [swc setForceOnTop:[self isFullScreen] || [self isPresentation]]; + [swc setForceOnTop:[self interactionMode] != SKNormalMode]; [[swc window] setHidesOnDeactivate:snapshotsOnTop]; [[self document] addWindowController:swc]; @@ -2038,10 +2034,10 @@ } - (NSRect)snapshotControllerTargetRectForMiniaturize:(SKSnapshotWindowController *)controller { - if ([self isPresentation] == NO) { - if ([self isFullScreen] == NO && [self rightSidePaneIsOpen] == NO) { + if ([self interactionMode] != SKPresentationMode) { + if ([self interactionMode] == SKNormalMode && [self rightSidePaneIsOpen] == NO) { [self toggleRightSidePane:self]; - } else if ([self isFullScreen] && ([rightSideWindow state] == NSDrawerClosedState || [rightSideWindow state] == NSDrawerClosingState)) { + } else if ([self interactionMode] == SKFullScreenMode && ([rightSideWindow state] == NSDrawerClosedState || [rightSideWindow state] == NSDrawerClosingState)) { [rightSideWindow expand]; [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hideRightSideWindow:) userInfo:NULL repeats:NO]; } @@ -2064,7 +2060,7 @@ } if (wc == nil) { wc = [[SKNoteWindowController alloc] initWithNote:annotation]; - [(SKNoteWindowController *)wc setForceOnTop:[self isFullScreen] || [self isPresentation]]; + [(SKNoteWindowController *)wc setForceOnTop:[self interactionMode] != SKNormalMode]; [[self document] addWindowController:wc]; [wc release]; } @@ -2139,12 +2135,12 @@ // A default value that we are observing has changed NSString *key = [keyPath substringFromIndex:7]; if ([key isEqualToString:SKBackgroundColorKey]) { - if ([self isFullScreen] == NO && [self isPresentation] == NO) { + if ([self interactionMode] == SKNormalMode) { [pdfView setBackgroundColor:[[NSUserDefaults standardUserDefaults] colorForKey:SKBackgroundColorKey]]; [secondaryPdfView setBackgroundColor:[[NSUserDefaults standardUserDefaults] colorForKey:SKBackgroundColorKey]]; } } else if ([key isEqualToString:SKFullScreenBackgroundColorKey]) { - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { NSColor *color = [[NSUserDefaults standardUserDefaults] colorForKey:SKFullScreenBackgroundColorKey]; if (color) { [pdfView setBackgroundColor:color]; @@ -2556,7 +2552,7 @@ case kRemoteButtonPlus: if (remoteScrolling) [[[self pdfView] documentView] scrollLineUp]; - else if ([self isPresentation]) + else if ([self interactionMode] == SKPresentationMode) [self doAutoScale:nil]; else [self doZoomIn:nil]; @@ -2564,7 +2560,7 @@ case kRemoteButtonMinus: if (remoteScrolling) [[[self pdfView] documentView] scrollLineDown]; - else if ([self isPresentation]) + else if ([self interactionMode] == SKPresentationMode) [self doZoomToActualSize:nil]; else [self doZoomOut:nil]; Modified: trunk/SKMainWindowController_Actions.m =================================================================== --- trunk/SKMainWindowController_Actions.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKMainWindowController_Actions.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -426,7 +426,7 @@ } - (IBAction)toggleAutoScale:(id)sender { - if ([self isPresentation]) + if ([self interactionMode] == SKPresentationMode) [pdfView toggleAutoActualSize:sender]; else [pdfView setAutoScales:[pdfView autoScales] == NO]; @@ -716,7 +716,7 @@ - (IBAction)searchPDF:(id)sender { BOOL selectImmediate = YES; - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { if ([leftSideWindow state] == NSDrawerClosedState || [leftSideWindow state] == NSDrawerClosingState) [leftSideWindow expand]; } else if ([self leftSidePaneIsOpen] == NO) { @@ -731,7 +731,7 @@ } - (IBAction)performFit:(id)sender { - if ([self isFullScreen] || [self isPresentation]) { + if ([self interactionMode] != SKNormalMode) { NSBeep(); return; } @@ -799,9 +799,9 @@ } - (IBAction)savePDFSettingToDefaults:(id)sender { - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) [[NSUserDefaults standardUserDefaults] setObject:[self currentPDFSettings] forKey:SKDefaultFullScreenPDFDisplaySettingsKey]; - else if ([self isPresentation] == NO) + else if ([self interactionMode] == SKNormalMode) [[NSUserDefaults standardUserDefaults] setObject:[self currentPDFSettings] forKey:SKDefaultPDFDisplaySettingsKey]; } @@ -838,13 +838,13 @@ } - (IBAction)toggleLeftSidePane:(id)sender { - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { [[SKImageToolTipWindow sharedToolTipWindow] fadeOut]; if ([self leftSidePaneIsOpen]) [leftSideWindow collapse]; else [leftSideWindow expand]; - } else if ([self isPresentation]) { + } else if ([self interactionMode] == SKPresentationMode) { if ([leftSideWindow isVisible]) [self hideLeftSideWindow]; else @@ -873,12 +873,12 @@ } - (IBAction)toggleRightSidePane:(id)sender { - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { if ([self rightSidePaneIsOpen]) [rightSideWindow collapse]; else [rightSideWindow expand]; - } else if ([self isPresentation]) { + } else if ([self interactionMode] == SKPresentationMode) { if ([rightSideWindow isVisible]) [self hideRightSideWindow]; else @@ -966,19 +966,19 @@ } [[self window] recalculateKeyViewLoop]; - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) [[self window] makeFirstResponder:pdfView]; } - (IBAction)toggleFullScreen:(id)sender { - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) [self exitFullScreen:sender]; else [self enterFullScreen:sender]; } - (IBAction)togglePresentation:(id)sender { - if ([self isPresentation]) + if ([self interactionMode] == SKPresentationMode) [self exitFullScreen:sender]; else [self enterPresentation:sender]; Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKMainWindowController_UI.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -249,7 +249,7 @@ if ([[notification object] isEqual:[self window]] && [[notification object] isEqual:mainWindow] == NO) { NSScreen *screen = [[self window] screen]; [[self window] setFrame:[screen frame] display:NO]; - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { if ([[leftSideWindow screen] isEqual:screen] == NO) { [leftSideWindow remove]; [leftSideWindow attachToWindow:[self window] onScreen:screen]; @@ -270,7 +270,7 @@ NSRect screenFrame = [screen frame]; if (NSEqualRects(screenFrame, [[self window] frame]) == NO) { [[self window] setFrame:screenFrame display:NO]; - if ([self isFullScreen]) { + if ([self interactionMode] == SKFullScreenMode) { [leftSideWindow remove]; [leftSideWindow attachToWindow:[self window] onScreen:screen]; [rightSideWindow remove]; @@ -360,7 +360,7 @@ if ([[aNotification object] isEqual:leftSideController.findTableView] || [[aNotification object] isEqual:leftSideController.groupedFindTableView]) { [self updateFindResultHighlights:YES]; - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoHidePresentationContentsKey]) + if ([self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoHidePresentationContentsKey]) [self hideLeftSideWindow]; } else if ([[aNotification object] isEqual:leftSideController.thumbnailTableView]) { if (mwcFlags.updatingThumbnailSelection == 0) { @@ -368,7 +368,7 @@ if (row != -1) [pdfView goToPage:[[pdfView document] pageAtIndex:row]]; - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoHidePresentationContentsKey]) + if ([self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoHidePresentationContentsKey]) [self hideLeftSideWindow]; } } else if ([[aNotification object] isEqual:rightSideController.snapshotTableView]) { @@ -659,7 +659,7 @@ mwcFlags.updatingOutlineSelection = 1; [self goToSelectedOutlineItem:nil]; mwcFlags.updatingOutlineSelection = 0; - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoHidePresentationContentsKey]) + if ([self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKAutoHidePresentationContentsKey]) [self hideLeftSideWindow]; } } @@ -1312,10 +1312,10 @@ SEL action = [menuItem action]; if (action == @selector(createNewNote:)) { BOOL isMarkup = [menuItem tag] == SKHighlightNote || [menuItem tag] == SKUnderlineNote || [menuItem tag] == SKStrikeOutNote; - return [self isPresentation] == NO && ([pdfView toolMode] == SKTextToolMode || [pdfView toolMode] == SKNoteToolMode) && [pdfView hideNotes] == NO && (isMarkup == NO || [[pdfView currentSelection] hasCharacters]); + return [self interactionMode] != SKPresentationMode && ([pdfView toolMode] == SKTextToolMode || [pdfView toolMode] == SKNoteToolMode) && [pdfView hideNotes] == NO && (isMarkup == NO || [[pdfView currentSelection] hasCharacters]); } else if (action == @selector(editNote:)) { PDFAnnotation *annotation = [pdfView activeAnnotation]; - return [self isPresentation] == NO && [annotation isSkimNote] && ([annotation isEditable]); + return [self interactionMode] != SKPresentationMode && [annotation isSkimNote] && ([annotation isEditable]); } else if (action == @selector(toggleHideNotes:)) { if ([pdfView hideNotes]) [menuItem setTitle:NSLocalizedString(@"Show Notes", @"Menu item title")]; @@ -1325,33 +1325,33 @@ } else if (action == @selector(displaySinglePages:)) { BOOL displaySinglePages = [pdfView displayMode] == kPDFDisplaySinglePage || [pdfView displayMode] == kPDFDisplaySinglePageContinuous; [menuItem setState:displaySinglePages ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(displayFacingPages:)) { BOOL displayFacingPages = [pdfView displayMode] == kPDFDisplayTwoUp || [pdfView displayMode] == kPDFDisplayTwoUpContinuous; [menuItem setState:displayFacingPages ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(changeDisplaySinglePages:)) { BOOL displaySinglePages1 = [pdfView displayMode] == kPDFDisplaySinglePage || [pdfView displayMode] == kPDFDisplaySinglePageContinuous; BOOL displaySinglePages2 = (PDFDisplayMode)[menuItem tag] == kPDFDisplaySinglePage; [menuItem setState:displaySinglePages1 == displaySinglePages2 ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(changeDisplayContinuous:)) { BOOL displayContinuous1 = [pdfView displayMode] == kPDFDisplaySinglePageContinuous || [pdfView displayMode] == kPDFDisplayTwoUpContinuous; BOOL displayContinuous2 = (PDFDisplayMode)[menuItem tag] == kPDFDisplaySinglePageContinuous; [menuItem setState:displayContinuous1 == displayContinuous2 ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(changeDisplayMode:)) { [menuItem setState:[pdfView displayMode] == (PDFDisplayMode)[menuItem tag] ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(toggleDisplayAsBook:)) { [menuItem setState:[pdfView displaysAsBook] ? NSOnState : NSOffState]; - return [self isPresentation] == NO && ([pdfView displayMode] == kPDFDisplayTwoUp || [pdfView displayMode] == kPDFDisplayTwoUpContinuous); + return [self interactionMode] != SKPresentationMode && ([pdfView displayMode] == kPDFDisplayTwoUp || [pdfView displayMode] == kPDFDisplayTwoUpContinuous); } else if (action == @selector(toggleDisplayPageBreaks:)) { [menuItem setState:[pdfView displaysPageBreaks] ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(changeDisplayBox:)) { [menuItem setState:[pdfView displayBox] == (PDFDisplayBox)[menuItem tag] ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(delete:) || action == @selector(copy:) || action == @selector(cut:) || action == @selector(paste:) || action == @selector(alternatePaste:) || action == @selector(pasteAsPlainText:) || action == @selector(deselectAll:) || action == @selector(changeAnnotationMode:) || action == @selector(changeToolMode:) || action == @selector(changeToolMode:)) { return [pdfView validateMenuItem:menuItem]; } else if (action == @selector(doGoToNextPage:)) { @@ -1383,17 +1383,17 @@ return markedPageIndex != NSNotFound && markedPageIndex != [[pdfView currentPage] pageIndex]; } } else if (action == @selector(doZoomIn:)) { - return [self isPresentation] == NO && [pdfView canZoomIn]; + return [self interactionMode] != SKPresentationMode && [pdfView canZoomIn]; } else if (action == @selector(doZoomOut:)) { - return [self isPresentation] == NO && [pdfView canZoomOut]; + return [self interactionMode] != SKPresentationMode && [pdfView canZoomOut]; } else if (action == @selector(doZoomToActualSize:)) { return fabs([pdfView scaleFactor] - 1.0 ) > 0.01; } else if (action == @selector(doZoomToPhysicalSize:)) { - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(doZoomToSelection:)) { - return [self isPresentation] == NO && NSIsEmptyRect([pdfView currentSelectionRect]) == NO; + return [self interactionMode] != SKPresentationMode && NSIsEmptyRect([pdfView currentSelectionRect]) == NO; } else if (action == @selector(doZoomToFit:)) { - return [self isPresentation] == NO && [pdfView autoScales] == NO; + return [self interactionMode] != SKPresentationMode && [pdfView autoScales] == NO; } else if (action == @selector(alternateZoomToFit:)) { PDFDisplayMode displayMode = [pdfView displayMode]; if (displayMode == kPDFDisplaySinglePage || displayMode == kPDFDisplayTwoUp) { @@ -1401,16 +1401,16 @@ } else { [menuItem setTitle:NSLocalizedString(@"Zoom To Height", @"Menu item title")]; } - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(doAutoScale:)) { return [pdfView autoScales] == NO; } else if (action == @selector(toggleAutoScale:)) { [menuItem setState:[pdfView autoScales] ? NSOnState : NSOffState]; return YES; } else if (action == @selector(cropAll:) || action == @selector(crop:) || action == @selector(autoCropAll:) || action == @selector(smartAutoCropAll:)) { - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(autoSelectContent:)) { - return [self isPresentation] == NO && [pdfView toolMode] == SKSelectToolMode; + return [self interactionMode] != SKPresentationMode && [pdfView toolMode] == SKSelectToolMode; } else if (action == @selector(toggleLeftSidePane:)) { if ([self leftSidePaneIsOpen]) [menuItem setTitle:NSLocalizedString(@"Hide Contents Pane", @"Menu item title")]; @@ -1422,57 +1422,57 @@ [menuItem setTitle:NSLocalizedString(@"Hide Notes Pane", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Show Notes Pane", @"Menu item title")]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(changeLeftSidePaneState:)) { [menuItem setState:mwcFlags.leftSidePaneState == (SKLeftSidePaneState)[menuItem tag] ? (([leftSideController.findTableView window] || [leftSideController.groupedFindTableView window]) ? NSMixedState : NSOnState) : NSOffState]; return (SKLeftSidePaneState)[menuItem tag] == SKThumbnailSidePaneState || [[pdfView document] outlineRoot]; } else if (action == @selector(changeRightSidePaneState:)) { [menuItem setState:mwcFlags.rightSidePaneState == (SKRightSidePaneState)[menuItem tag] ? NSOnState : NSOffState]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(toggleSplitPDF:)) { if ([secondaryPdfView window]) [menuItem setTitle:NSLocalizedString(@"Hide Split PDF", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Show Split PDF", @"Menu item title")]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(toggleStatusBar:)) { if ([statusBar isVisible]) [menuItem setTitle:NSLocalizedString(@"Hide Status Bar", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Show Status Bar", @"Menu item title")]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(searchPDF:)) { - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(toggleFullScreen:)) { - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) [menuItem setTitle:NSLocalizedString(@"Remove Full Screen", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Full Screen", @"Menu item title")]; return [[self pdfDocument] isLocked] == NO; } else if (action == @selector(togglePresentation:)) { - if ([self isPresentation]) + if ([self interactionMode] == SKPresentationMode) [menuItem setTitle:NSLocalizedString(@"Remove Presentation", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Presentation", @"Menu item title")]; return [[self pdfDocument] isLocked] == NO; } else if (action == @selector(getInfo:)) { - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(performFit:)) { - return [self isFullScreen] == NO && [self isPresentation] == NO; + return [self interactionMode] == SKNormalMode; } else if (action == @selector(password:)) { - return [self isPresentation] == NO && [[self pdfDocument] isLocked]; + return [self interactionMode] != SKPresentationMode && [[self pdfDocument] isLocked]; } else if (action == @selector(toggleReadingBar:)) { if ([[self pdfView] hasReadingBar]) [menuItem setTitle:NSLocalizedString(@"Hide Reading Bar", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Show Reading Bar", @"Menu item title")]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(savePDFSettingToDefaults:)) { - if ([self isFullScreen]) + if ([self interactionMode] == SKFullScreenMode) [menuItem setTitle:NSLocalizedString(@"Use Current View Settings as Default for Full Screen", @"Menu item title")]; else [menuItem setTitle:NSLocalizedString(@"Use Current View Settings as Default", @"Menu item title")]; - return [self isPresentation] == NO; + return [self interactionMode] != SKPresentationMode; } else if (action == @selector(chooseTransition:)) { return [[self pdfDocument] pageCount] > 1; } else if (action == @selector(toggleCaseInsensitiveSearch:)) { @@ -1513,7 +1513,7 @@ [self synchronizeWindowTitleWithDocumentName]; [self updateLeftStatus]; - if ([self isPresentation]) { + if ([self interactionMode] == SKPresentationMode) { SKPDFView *notesPdfView = [[self presentationNotesDocument] pdfView]; if (notesPdfView) [notesPdfView goToPage:[[notesPdfView document] pageAtIndex:[page pageIndex]]]; @@ -1529,18 +1529,18 @@ } - (void)handleApplicationWillTerminateNotification:(NSNotification *)notification { - if ([self isFullScreen] || [self isPresentation]) + if ([self interactionMode] != SKNormalMode) [self exitFullScreen:self]; } - (void)handleApplicationDidResignActiveNotification:(NSNotification *)notification { - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { + if ([self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { [[self window] setLevel:NSNormalWindowLevel]; } } - (void)handleApplicationWillBecomeActiveNotification:(NSNotification *)notification { - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { + if ([self interactionMode] == SKPresentationMode && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { [[self window] setLevel:NSPopUpMenuWindowLevel]; } } Modified: trunk/SKPDFView.h =================================================================== --- trunk/SKPDFView.h 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKPDFView.h 2010-07-17 21:01:54 UTC (rev 6630) @@ -82,13 +82,6 @@ }; typedef NSInteger SKNoteType; -enum { - SKNormalMode, - SKFullScreenMode, - SKPresentationMode -}; -typedef NSInteger SKInteractionMode; - @class SKReadingBar, SKTransitionController, SKTypeSelectHelper, SKNavigationWindow; @interface SKPDFView : PDFView <NSTextFieldDelegate> { Modified: trunk/SKSideWindow.m =================================================================== --- trunk/SKSideWindow.m 2010-07-17 17:34:07 UTC (rev 6629) +++ trunk/SKSideWindow.m 2010-07-17 21:01:54 UTC (rev 6630) @@ -262,7 +262,7 @@ [controller closeSideWindow:self]; else [controller exitFullScreen:self]; - } else if (ch == 'p' && modifierFlags == 0 && [controller isPresentation]) { + } else if (ch == 'p' && modifierFlags == 0 && [controller interactionMode] == SKPresentationMode) { [controller closeSideWindow:self]; } else { [super keyDown:theEvent]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-17 17:34:13
|
Revision: 6629 http://skim-app.svn.sourceforge.net/skim-app/?rev=6629&view=rev Author: hofman Date: 2010-07-17 17:34:07 +0000 (Sat, 17 Jul 2010) Log Message: ----------- no ivar for fullscreen window, only as a local variable and as the (current) window Modified Paths: -------------- trunk/SKMainWindowController.h trunk/SKMainWindowController.m trunk/SKMainWindowController_UI.m Modified: trunk/SKMainWindowController.h =================================================================== --- trunk/SKMainWindowController.h 2010-07-17 16:48:23 UTC (rev 6628) +++ trunk/SKMainWindowController.h 2010-07-17 17:34:07 UTC (rev 6629) @@ -66,7 +66,7 @@ }; @class PDFAnnotation, PDFSelection, SKGroupedSearchResult, SKFloatMapTable; -@class SKPDFView, SKSecondaryPDFView, SKStatusBar, SKSplitView, SKFullScreenWindow, SKSideWindow; +@class SKPDFView, SKSecondaryPDFView, SKStatusBar, SKSplitView, SKSideWindow; @class SKMainDocument, SKLeftSideViewController, SKRightSideViewController, SKMainToolbarController, SKProgressController, SKPresentationOptionsSheetController, SKNoteTypeSheetController; @interface SKMainWindowController : NSWindowController <SKSnapshotWindowControllerDelegate, SKThumbnailDelegate> { @@ -113,7 +113,6 @@ double rating; NSWindow *mainWindow; - SKFullScreenWindow *fullScreenWindow; SKSideWindow *leftSideWindow; SKSideWindow *rightSideWindow; NSMutableArray *blankingWindows; Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-17 16:48:23 UTC (rev 6628) +++ trunk/SKMainWindowController.m 2010-07-17 17:34:07 UTC (rev 6629) @@ -252,7 +252,6 @@ [[NSNotificationCenter defaultCenter] removeObserver: self]; [self unregisterAsObserver]; [mainWindow setDelegate:nil]; - [fullScreenWindow setDelegate:nil]; [splitView setDelegate:nil]; [pdfSplitView setDelegate:nil]; [pdfView setDelegate:nil]; @@ -274,7 +273,6 @@ SKDESTROY(lastViewedPages); SKDESTROY(leftSideWindow); SKDESTROY(rightSideWindow); - SKDESTROY(fullScreenWindow); SKDESTROY(mainWindow); SKDESTROY(statusBar); SKDESTROY(savedNormalSetup); @@ -887,7 +885,7 @@ } - (BOOL)isFullScreen { - return [self window] == fullScreenWindow && mwcFlags.isPresentation == 0; + return [self isWindowLoaded] && [self window] != mainWindow && mwcFlags.isPresentation == 0; } - (BOOL)isPresentation { @@ -1307,12 +1305,8 @@ NSColor *backgroundColor = [self isPresentation] ? [NSColor blackColor] : [[NSUserDefaults standardUserDefaults] colorForKey:SKFullScreenBackgroundColorKey]; NSInteger level = [self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel; - // Create the full-screen window if it does not already exist. - if (fullScreenWindow == nil) - fullScreenWindow = [[SKFullScreenWindow alloc] initWithScreen:screen]; - - // explicitly set window frame; screen may have moved, or may be nil (in which case [fullScreenWindow frame] is wrong, which is weird); the first time through this method, [fullScreenWindow screen] is nil - [fullScreenWindow setFrame:[screen frame] display:NO]; + // create a new full screen window + SKFullScreenWindow *fullScreenWindow = [[[SKFullScreenWindow alloc] initWithScreen:screen] autorelease]; if ([[mainWindow firstResponder] isDescendantOf:pdfView]) [mainWindow makeFirstResponder:nil]; @@ -1384,8 +1378,10 @@ [pdfView toggleReadingBar]; [pdfView setBackgroundColor:[NSColor clearColor]]; - [fullScreenWindow setBackgroundColor:[NSColor blackColor]]; - [fullScreenWindow setLevel:[[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel]; + if ([self window] != mainWindow) { + [[self window] setBackgroundColor:[NSColor blackColor]]; + [[self window] setLevel:[[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel]; + } SKPDFView *notesPdfView = [[self presentationNotesDocument] pdfView]; if (notesPdfView) @@ -1427,7 +1423,7 @@ [self exitPresentationMode]; [pdfView setFrame:[pdfContentView bounds]]; [pdfContentView addSubview:pdfView]; - [fullScreenWindow setMainView:pdfSplitView]; + [(SKFullScreenWindow *)[self window] setMainView:pdfSplitView]; } else { [self saveNormalSetup]; [self goFullScreen]; @@ -1436,8 +1432,8 @@ NSColor *backgroundColor = [[NSUserDefaults standardUserDefaults] colorForKey:SKFullScreenBackgroundColorKey]; [pdfView setBackgroundColor:backgroundColor]; [secondaryPdfView setBackgroundColor:backgroundColor]; - [fullScreenWindow setBackgroundColor:backgroundColor]; - [fullScreenWindow setLevel:NSNormalWindowLevel]; + [[self window] setBackgroundColor:backgroundColor]; + [[self window] setLevel:NSNormalWindowLevel]; NSDictionary *fullScreenSetup = [[NSUserDefaults standardUserDefaults] dictionaryForKey:SKDefaultFullScreenPDFDisplaySettingsKey]; if ([fullScreenSetup count]) @@ -1464,7 +1460,7 @@ if (wasFullScreen) { [pdfSplitView setFrame:[centerContentView bounds]]; [centerContentView addSubview:pdfSplitView]; - [fullScreenWindow setMainView:pdfView]; + [(SKFullScreenWindow *)[self window] setMainView:pdfView]; [self hideSideWindows]; } else { [self goFullScreen]; @@ -1480,14 +1476,15 @@ if ([self isFullScreen]) [self hideSideWindows]; - if ([[fullScreenWindow firstResponder] isDescendantOf:pdfView]) - [fullScreenWindow makeFirstResponder:nil]; + if ([[[self window] firstResponder] isDescendantOf:pdfView]) + [[self window] makeFirstResponder:nil]; // do this first, otherwise the navigation window may be covered by fadeWindow and then reveiled again, which looks odd [pdfView setInteractionMode:SKNormalMode screen:[[self window] screen]]; // first fade out the pdfView so we can move the pdfView to the main window before it's revealed // animating the view itself does no work as PDFView does not work nicely with CoreAnimation, so we use a temporary window + SKFullScreenWindow *fullScreenWindow = [[[self window] retain] autorelease]; SKFullScreenWindow *fadeWindow = [[SKFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen] canBecomeMain:NO]; [fadeWindow setBackgroundColor:[fullScreenWindow backgroundColor]]; [fadeWindow setLevel:[fullScreenWindow level]]; @@ -1534,8 +1531,6 @@ [mainWindow setCollectionBehavior:NSWindowCollectionBehaviorDefault]; [mainWindow display]; [fullScreenWindow fadeOut]; - [[fullScreenWindow retain] autorelease]; - SKDESTROY(fullScreenWindow); [mainWindow makeFirstResponder:pdfView]; [mainWindow recalculateKeyViewLoop]; [mainWindow setDelegate:self]; @@ -2154,8 +2149,8 @@ if (color) { [pdfView setBackgroundColor:color]; [secondaryPdfView setBackgroundColor:color]; - [fullScreenWindow setBackgroundColor:color]; - [[fullScreenWindow contentView] setNeedsDisplay:YES]; + [[self window] setBackgroundColor:color]; + [[[self window] contentView] setNeedsDisplay:YES]; for (NSWindow *window in blankingWindows) { [window setBackgroundColor:color]; Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2010-07-17 16:48:23 UTC (rev 6628) +++ trunk/SKMainWindowController_UI.m 2010-07-17 17:34:07 UTC (rev 6629) @@ -246,7 +246,7 @@ } - (void)windowDidChangeScreen:(NSNotification *)notification { - if ([[notification object] isEqual:[self window]] && [[notification object] isEqual:fullScreenWindow]) { + if ([[notification object] isEqual:[self window]] && [[notification object] isEqual:mainWindow] == NO) { NSScreen *screen = [[self window] screen]; [[self window] setFrame:[screen frame] display:NO]; if ([self isFullScreen]) { @@ -265,7 +265,7 @@ } - (void)windowDidMove:(NSNotification *)notification { - if ([[notification object] isEqual:[self window]] && [[notification object] isEqual:fullScreenWindow]) { + if ([[notification object] isEqual:[self window]] && [[notification object] isEqual:[self mainWindow]] == NO) { NSScreen *screen = [[self window] screen]; NSRect screenFrame = [screen frame]; if (NSEqualRects(screenFrame, [[self window] frame]) == NO) { @@ -1535,13 +1535,13 @@ - (void)handleApplicationDidResignActiveNotification:(NSNotification *)notification { if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { - [fullScreenWindow setLevel:NSNormalWindowLevel]; + [[self window] setLevel:NSNormalWindowLevel]; } } - (void)handleApplicationWillBecomeActiveNotification:(NSNotification *)notification { if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { - [fullScreenWindow setLevel:NSPopUpMenuWindowLevel]; + [[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...> - 2010-07-17 16:48:32
|
Revision: 6628 http://skim-app.svn.sourceforge.net/skim-app/?rev=6628&view=rev Author: hofman Date: 2010-07-17 16:48:23 +0000 (Sat, 17 Jul 2010) Log Message: ----------- destroy blanking windows Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-17 16:44:12 UTC (rev 6627) +++ trunk/SKMainWindowController.m 2010-07-17 16:48:23 UTC (rev 6628) @@ -1264,11 +1264,6 @@ [leftSideController.view setFrame:rect]; [leftSideContentView addSubview:leftSideController.view]; - if ([self isPresentation]) { - [self setLeftSidePaneState:mwcFlags.savedLeftSidePaneState]; - [leftSideWindow setAlphaValue:1.0]; - [leftSideWindow setEnabled:YES]; - } SKDESTROY(leftSideWindow); } } @@ -1287,10 +1282,6 @@ [rightSideController.view setFrame:rect]; [rightSideContentView addSubview:rightSideController.view]; - if ([self isPresentation]) { - [rightSideWindow setAlphaValue:1.0]; - [rightSideWindow setEnabled:YES]; - } SKDESTROY(rightSideWindow); } } @@ -1553,8 +1544,8 @@ [self synchronizeWindowTitleWithDocumentName]; [blankingWindows makeObjectsPerformSelector:@selector(fadeOut)]; - [[blankingWindows copy] autorelease]; - [blankingWindows removeAllObjects]; + [[blankingWindows retain] autorelease]; + SKDESTROY(blankingWindows); } #pragma mark Swapping tables This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-17 16:44:19
|
Revision: 6627 http://skim-app.svn.sourceforge.net/skim-app/?rev=6627&view=rev Author: hofman Date: 2010-07-17 16:44:12 +0000 (Sat, 17 Jul 2010) Log Message: ----------- destroy fullscreen windows after using them, as they may need to be associated to a different space the next time, which would expose a spaces bug Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-17 12:14:44 UTC (rev 6626) +++ trunk/SKMainWindowController.m 2010-07-17 16:44:12 UTC (rev 6627) @@ -1269,6 +1269,7 @@ [leftSideWindow setAlphaValue:1.0]; [leftSideWindow setEnabled:YES]; } + SKDESTROY(leftSideWindow); } } @@ -1290,6 +1291,7 @@ [rightSideWindow setAlphaValue:1.0]; [rightSideWindow setEnabled:YES]; } + SKDESTROY(rightSideWindow); } } @@ -1541,6 +1543,8 @@ [mainWindow setCollectionBehavior:NSWindowCollectionBehaviorDefault]; [mainWindow display]; [fullScreenWindow fadeOut]; + [[fullScreenWindow retain] autorelease]; + SKDESTROY(fullScreenWindow); [mainWindow makeFirstResponder:pdfView]; [mainWindow recalculateKeyViewLoop]; [mainWindow setDelegate:self]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-17 12:14:50
|
Revision: 6626 http://skim-app.svn.sourceforge.net/skim-app/?rev=6626&view=rev Author: hofman Date: 2010-07-17 12:14:44 +0000 (Sat, 17 Jul 2010) Log Message: ----------- reset collection behavior for main window after fading out fullscreen Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-17 11:27:49 UTC (rev 6625) +++ trunk/SKMainWindowController.m 2010-07-17 12:14:44 UTC (rev 6626) @@ -1536,7 +1536,9 @@ // trick to make sure the main window shows up in the same space as the fullscreen window [fullScreenWindow addChildWindow:mainWindow ordered:NSWindowBelow]; [fullScreenWindow removeChildWindow:mainWindow]; - [mainWindow setLevel:NSNormalWindowLevel]; // this can change due to the child window trick + // these can change due to the child window trick + [mainWindow setLevel:NSNormalWindowLevel]; + [mainWindow setCollectionBehavior:NSWindowCollectionBehaviorDefault]; [mainWindow display]; [fullScreenWindow fadeOut]; [mainWindow makeFirstResponder:pdfView]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-17 11:27:55
|
Revision: 6625 http://skim-app.svn.sourceforge.net/skim-app/?rev=6625&view=rev Author: hofman Date: 2010-07-17 11:27:49 +0000 (Sat, 17 Jul 2010) Log Message: ----------- trick to move the main window to the same space as the fullscreen window on fadeout Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-17 10:58:52 UTC (rev 6624) +++ trunk/SKMainWindowController.m 2010-07-17 11:27:49 UTC (rev 6625) @@ -1533,7 +1533,10 @@ SetSystemUIMode(kUIModeNormal, 0); [self setWindow:mainWindow]; - [mainWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; + // trick to make sure the main window shows up in the same space as the fullscreen window + [fullScreenWindow addChildWindow:mainWindow ordered:NSWindowBelow]; + [fullScreenWindow removeChildWindow:mainWindow]; + [mainWindow setLevel:NSNormalWindowLevel]; // this can change due to the child window trick [mainWindow display]; [fullScreenWindow fadeOut]; [mainWindow makeFirstResponder:pdfView]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-17 10:58:58
|
Revision: 6624 http://skim-app.svn.sourceforge.net/skim-app/?rev=6624&view=rev Author: hofman Date: 2010-07-17 10:58:52 +0000 (Sat, 17 Jul 2010) Log Message: ----------- was removing child window for wrong window Modified Paths: -------------- trunk/SKNavigationWindow.m trunk/SKPDFView.m Modified: trunk/SKNavigationWindow.m =================================================================== --- trunk/SKNavigationWindow.m 2010-07-16 15:32:00 UTC (rev 6623) +++ trunk/SKNavigationWindow.m 2010-07-17 10:58:52 UTC (rev 6624) @@ -184,6 +184,11 @@ [self setFrame:winFrame display:NO]; } +- (void)remove { + [[self parentWindow] removeChildWindow:self]; + [super remove]; +} + - (void)orderOut:(id)sender { [[SKNavigationToolTipWindow sharedToolTipWindow] orderOut:nil]; [super orderOut:sender]; @@ -274,17 +279,13 @@ [self setLevel:[[view window] level]]; if ([self parentWindow] != [view window]) [[self parentWindow] removeChildWindow:self]; - if ([self parentWindow] == nil) + if ([self parentWindow] == nil) [[view window] addChildWindow:self ordered:NSWindowAbove]; [self orderFront:self]; } -- (void)remove { +- (void)orderOut:(id)sender { [[self parentWindow] removeChildWindow:self]; - [super remove]; -} - -- (void)orderOut:(id)sender { [super orderOut:sender]; SKDESTROY(view); } Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2010-07-16 15:32:00 UTC (rev 6623) +++ trunk/SKPDFView.m 2010-07-17 10:58:52 UTC (rev 6624) @@ -1175,7 +1175,8 @@ if ([navWindow isVisible] == NO) { if (navigationMode == SKNavigationEverywhere) { [navWindow fadeIn]; - [[self window] addChildWindow:navWindow ordered:NSWindowAbove]; + if ([navWindow parentWindow] == nil) + [[self window] addChildWindow:navWindow ordered:NSWindowAbove]; } else if (navigationMode == SKNavigationBottom && [theEvent locationInWindow].y < 3.0) { [self showNavWindow:YES]; } @@ -2455,7 +2456,8 @@ - (void)showNavWindowDelayed { if ([navWindow isVisible] == NO && [[self window] mouseLocationOutsideOfEventStream].y < 3.0) { [navWindow fadeIn]; - [[self window] addChildWindow:navWindow ordered:NSWindowAbove]; + if ([navWindow parentWindow] == nil) + [[self window] addChildWindow:navWindow ordered:NSWindowAbove]; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-16 15:32:07
|
Revision: 6623 http://skim-app.svn.sourceforge.net/skim-app/?rev=6623&view=rev Author: hofman Date: 2010-07-16 15:32:00 +0000 (Fri, 16 Jul 2010) Log Message: ----------- remove nav window at end of fade out, go through separate method to close animated windows when fading out Modified Paths: -------------- trunk/SKAnimatedBorderlessWindow.h trunk/SKAnimatedBorderlessWindow.m trunk/SKNavigationWindow.m trunk/SKPDFView.m Modified: trunk/SKAnimatedBorderlessWindow.h =================================================================== --- trunk/SKAnimatedBorderlessWindow.h 2010-07-16 15:23:45 UTC (rev 6622) +++ trunk/SKAnimatedBorderlessWindow.h 2010-07-16 15:32:00 UTC (rev 6623) @@ -52,6 +52,8 @@ - (void)fadeIn; - (void)fadeOut; +- (void)remove; + - (void)orderOut:(id)sender; - (void)orderFront:(id)sender; - (void)orderFrontRegardless; Modified: trunk/SKAnimatedBorderlessWindow.m =================================================================== --- trunk/SKAnimatedBorderlessWindow.m 2010-07-16 15:23:45 UTC (rev 6622) +++ trunk/SKAnimatedBorderlessWindow.m 2010-07-16 15:32:00 UTC (rev 6623) @@ -90,7 +90,7 @@ - (void)cancelDelayedAnimations { [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(fadeOut) object:nil]; - [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(orderOut:) object:nil]; + [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(remove) object:nil]; } - (void)fadeOutAfterTimeout { @@ -120,6 +120,10 @@ [self setAlphaValue:[self defaultAlphaValue]]; } +- (void)remove { + [self orderOut:nil]; +} + - (void)fadeOut { [self stopAnimation]; @@ -127,13 +131,13 @@ [self willClose]; if ([[NSUserDefaults standardUserDefaults] boolForKey:SKDisableAnimationsKey]) { - [self orderOut:nil]; + [self remove]; } else { [NSAnimationContext beginGrouping]; [[NSAnimationContext currentContext] setDuration:[self fadeOutDuration]]; [[self animator] setAlphaValue:0.0]; [NSAnimationContext endGrouping]; - [self performSelector:@selector(orderOut:) withObject:nil afterDelay:[self fadeOutDuration]]; + [self performSelector:@selector(remove) withObject:nil afterDelay:[self fadeOutDuration]]; } } Modified: trunk/SKNavigationWindow.m =================================================================== --- trunk/SKNavigationWindow.m 2010-07-16 15:23:45 UTC (rev 6622) +++ trunk/SKNavigationWindow.m 2010-07-16 15:32:00 UTC (rev 6623) @@ -279,8 +279,12 @@ [self orderFront:self]; } +- (void)remove { + [[self parentWindow] removeChildWindow:self]; + [super remove]; +} + - (void)orderOut:(id)sender { - [[self parentWindow] removeChildWindow:self]; [super orderOut:sender]; SKDESTROY(view); } Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2010-07-16 15:23:45 UTC (rev 6622) +++ trunk/SKPDFView.m 2010-07-16 15:32:00 UTC (rev 6623) @@ -2408,8 +2408,7 @@ - (void)handleWindowWillCloseNotification:(NSNotification *)notification { if ([self isEditing] && [self commitEditing] == NO) [self discardEditing]; - [[navWindow parentWindow] removeChildWindow:navWindow]; - [navWindow orderOut:self]; + [navWindow remove]; } - (void)enableNavigationForScreen:(NSScreen *)screen { @@ -2417,8 +2416,7 @@ // always recreate the navWindow, since moving between screens of different resolution can mess up the location (in spite of moveToScreen:) if (navWindow != nil) { - [[navWindow parentWindow] removeChildWindow:navWindow]; - [navWindow orderOut:nil]; + [navWindow remove]; [navWindow release]; } else { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleWindowWillCloseNotification:) @@ -2436,8 +2434,7 @@ [self showNavWindow:NO]; [self doAutohide:NO]; - [[navWindow parentWindow] removeChildWindow:navWindow]; - [navWindow orderOut:self]; + [navWindow remove]; } - (void)doAutohideDelayed { @@ -2445,10 +2442,8 @@ return; if (interactionMode == SKPresentationMode) [NSCursor setHiddenUntilMouseMoves:YES]; - if (interactionMode != SKNormalMode) { - [[navWindow parentWindow] removeChildWindow:navWindow]; + if (interactionMode != SKNormalMode) [navWindow fadeOut]; - } } - (void)doAutohide:(BOOL)flag { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-16 15:23:51
|
Revision: 6622 http://skim-app.svn.sourceforge.net/skim-app/?rev=6622&view=rev Author: hofman Date: 2010-07-16 15:23:45 +0000 (Fri, 16 Jul 2010) Log Message: ----------- don't remove nav window as child window in orderOut:, as that is called when the app hides, which I think is wrong Modified Paths: -------------- trunk/SKNavigationWindow.m trunk/SKPDFView.m Modified: trunk/SKNavigationWindow.m =================================================================== --- trunk/SKNavigationWindow.m 2010-07-16 11:11:13 UTC (rev 6621) +++ trunk/SKNavigationWindow.m 2010-07-16 15:23:45 UTC (rev 6622) @@ -185,7 +185,6 @@ } - (void)orderOut:(id)sender { - [[self parentWindow] removeChildWindow:self]; [[SKNavigationToolTipWindow sharedToolTipWindow] orderOut:nil]; [super orderOut:sender]; } Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2010-07-16 11:11:13 UTC (rev 6621) +++ trunk/SKPDFView.m 2010-07-16 15:23:45 UTC (rev 6622) @@ -2408,6 +2408,7 @@ - (void)handleWindowWillCloseNotification:(NSNotification *)notification { if ([self isEditing] && [self commitEditing] == NO) [self discardEditing]; + [[navWindow parentWindow] removeChildWindow:navWindow]; [navWindow orderOut:self]; } @@ -2416,6 +2417,7 @@ // always recreate the navWindow, since moving between screens of different resolution can mess up the location (in spite of moveToScreen:) if (navWindow != nil) { + [[navWindow parentWindow] removeChildWindow:navWindow]; [navWindow orderOut:nil]; [navWindow release]; } else { @@ -2434,6 +2436,7 @@ [self showNavWindow:NO]; [self doAutohide:NO]; + [[navWindow parentWindow] removeChildWindow:navWindow]; [navWindow orderOut:self]; } @@ -2442,8 +2445,10 @@ return; if (interactionMode == SKPresentationMode) [NSCursor setHiddenUntilMouseMoves:YES]; - if (interactionMode != SKNormalMode) + if (interactionMode != SKNormalMode) { + [[navWindow parentWindow] removeChildWindow:navWindow]; [navWindow fadeOut]; + } } - (void)doAutohide:(BOOL)flag { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-16 11:11:19
|
Revision: 6621 http://skim-app.svn.sourceforge.net/skim-app/?rev=6621&view=rev Author: hofman Date: 2010-07-16 11:11:13 +0000 (Fri, 16 Jul 2010) Log Message: ----------- Don't show fullscreen window on all spaces. Add navigation window as child window. Change UI mode according to the status of the document of the main window when the main window changes. Modified Paths: -------------- trunk/SKApplicationController.m trunk/SKFullScreenWindow.m trunk/SKMainWindowController.m trunk/SKNavigationWindow.m trunk/SKNoteWindowController.m trunk/SKPDFView.m trunk/SKSideWindow.m trunk/SKSnapshotWindowController.m Modified: trunk/SKApplicationController.m =================================================================== --- trunk/SKApplicationController.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKApplicationController.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -154,6 +154,25 @@ [[[NSDocumentController sharedDocumentController] documents] makeObjectsPerformSelector:@selector(saveRecentDocumentInfo)]; } +- (void)handleWindowDidBecomeMainNotification:(NSNotification *)aNotification { + SystemUIMode currentMode, mode = kUIModeNormal; + SystemUIOptions currentOptions, options = 0; + GetSystemUIMode(¤tMode, ¤tOptions); + id doc = [[[aNotification object] windowController] document]; + SKMainWindowController *mwc = [doc respondsToSelector:@selector(mainWindowController)] ? [doc mainWindowController] : nil; + if ([[[mwc window] screen] isEqual:[[NSScreen screens] objectAtIndex:0]]) { + if ([mwc isPresentation]) { + mode = kUIModeAllHidden; + options = kUIOptionDisableProcessSwitch; + } else if ([mwc isFullScreen]) { + mode = kUIModeAllHidden; + options = kUIOptionAutoShowMenuBar; + } + } + if (mode != currentMode || options != currentOptions) + SetSystemUIMode(mode, options); +} + #pragma mark NSApplication delegate - (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender{ @@ -209,6 +228,8 @@ name:SKDocumentDidShowNotification object:nil]; [nc addObserver:self selector:@selector(registerCurrentDocuments:) name:SKDocumentControllerDidRemoveDocumentNotification object:nil]; + [nc addObserver:self selector:@selector(handleWindowDidBecomeMainNotification:) + name:NSWindowDidBecomeMainNotification object:nil]; [self registerCurrentDocuments:nil]; } @@ -230,6 +251,7 @@ NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc removeObserver:self name:SKDocumentDidShowNotification object:nil]; [nc removeObserver:self name:SKDocumentControllerDidRemoveDocumentNotification object:nil]; + [nc removeObserver:self name:NSWindowDidBecomeMainNotification object:nil]; } - (void)applicationWillTerminate:(NSNotification *)aNotification { Modified: trunk/SKFullScreenWindow.m =================================================================== --- trunk/SKFullScreenWindow.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKFullScreenWindow.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -57,7 +57,6 @@ if (self = [self initWithContentRect:[screen frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO screen:screen]) { canBecomeMain = flag; [self setBackgroundColor:[NSColor blackColor]]; - [self setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces]; [self setReleasedWhenClosed:canBecomeMain == NO]; [self setDisplaysWhenScreenProfileChanges:canBecomeMain]; [self setAcceptsMouseMovedEvents:canBecomeMain]; Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKMainWindowController.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -1490,6 +1490,9 @@ if ([[fullScreenWindow firstResponder] isDescendantOf:pdfView]) [fullScreenWindow makeFirstResponder:nil]; + // do this first, otherwise the navigation window may be covered by fadeWindow and then reveiled again, which looks odd + [pdfView setInteractionMode:SKNormalMode screen:[[self window] screen]]; + // first fade out the pdfView so we can move the pdfView to the main window before it's revealed // animating the view itself does no work as PDFView does not work nicely with CoreAnimation, so we use a temporary window SKFullScreenWindow *fadeWindow = [[SKFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen] canBecomeMain:NO]; @@ -1503,7 +1506,6 @@ [fadeWindow fadeOutBlocking]; [fadeWindow release]; - [pdfView setInteractionMode:SKNormalMode screen:[[self window] screen]]; // this should be done before exitPresentationMode to get a smooth transition if ([self isFullScreen]) { [pdfSplitView setFrame:[centerContentView bounds]]; Modified: trunk/SKNavigationWindow.m =================================================================== --- trunk/SKNavigationWindow.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKNavigationWindow.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -76,7 +76,6 @@ [self setLevel:[[pdfView window] level]]; [self setHidesOnDeactivate:YES]; [self setMovableByWindowBackground:YES]; - [self setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces]; [self setContentView:[[[SKNavigationContentView alloc] init] autorelease]]; @@ -186,8 +185,9 @@ } - (void)orderOut:(id)sender { + [[self parentWindow] removeChildWindow:self]; + [[SKNavigationToolTipWindow sharedToolTipWindow] orderOut:nil]; [super orderOut:sender]; - [[SKNavigationToolTipWindow sharedToolTipWindow] orderOut:self]; } - (void)handleScaleChangedNotification:(NSNotification *)notification { Modified: trunk/SKNoteWindowController.m =================================================================== --- trunk/SKNoteWindowController.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKNoteWindowController.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -262,7 +262,6 @@ forceOnTop = flag; [[self window] setLevel:keepOnTop || forceOnTop ? NSFloatingWindowLevel : NSNormalWindowLevel]; [[self window] setHidesOnDeactivate:keepOnTop || forceOnTop]; - [[self window] setCollectionBehavior:forceOnTop ? NSWindowCollectionBehaviorCanJoinAllSpaces : NSWindowCollectionBehaviorDefault]; } - (void)statusBarClicked:(id)sender { Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKPDFView.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -1173,10 +1173,12 @@ } if ([navWindow isVisible] == NO) { - if (navigationMode == SKNavigationEverywhere) + if (navigationMode == SKNavigationEverywhere) { [navWindow fadeIn]; - else if (navigationMode == SKNavigationBottom && [theEvent locationInWindow].y < 3.0) + [[self window] addChildWindow:navWindow ordered:NSWindowAbove]; + } else if (navigationMode == SKNavigationBottom && [theEvent locationInWindow].y < 3.0) { [self showNavWindow:YES]; + } } if (navigationMode != SKNavigationNone || interactionMode == SKPresentationMode) [self doAutohide:YES]; @@ -2422,7 +2424,7 @@ } navWindow = [[SKNavigationWindow alloc] initWithPDFView:self hasSlider:interactionMode == SKFullScreenMode]; [navWindow moveToScreen:screen]; - [navWindow setLevel:[[self window] level] + 1]; + [navWindow setLevel:[[self window] level]]; [self doAutohide:YES]; } @@ -2451,8 +2453,10 @@ } - (void)showNavWindowDelayed { - if ([navWindow isVisible] == NO && [[self window] mouseLocationOutsideOfEventStream].y < 3.0) + if ([navWindow isVisible] == NO && [[self window] mouseLocationOutsideOfEventStream].y < 3.0) { [navWindow fadeIn]; + [[self window] addChildWindow:navWindow ordered:NSWindowAbove]; + } } - (void)showNavWindow:(BOOL)flag { Modified: trunk/SKSideWindow.m =================================================================== --- trunk/SKSideWindow.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKSideWindow.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -88,7 +88,6 @@ [self setHasShadow:YES]; [self setDisplaysWhenScreenProfileChanges:YES]; [self setReleasedWhenClosed:NO]; - [self setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces]; controller = aController; edge = anEdge; Modified: trunk/SKSnapshotWindowController.m =================================================================== --- trunk/SKSnapshotWindowController.m 2010-07-15 18:24:50 UTC (rev 6620) +++ trunk/SKSnapshotWindowController.m 2010-07-16 11:11:13 UTC (rev 6621) @@ -301,7 +301,6 @@ BOOL onTop = forceOnTop || [[NSUserDefaults standardUserDefaults] boolForKey:SKSnapshotsOnTopKey]; [[self window] setLevel:onTop ? NSFloatingWindowLevel : NSNormalWindowLevel]; [[self window] setHidesOnDeactivate:onTop]; - [[self window] setCollectionBehavior:forceOnTop ? NSWindowCollectionBehaviorCanJoinAllSpaces : NSWindowCollectionBehaviorDefault]; } - (NSDictionary *)currentSetup { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-15 18:24:56
|
Revision: 6620 http://skim-app.svn.sourceforge.net/skim-app/?rev=6620&view=rev Author: hofman Date: 2010-07-15 18:24:50 +0000 (Thu, 15 Jul 2010) Log Message: ----------- don't set invalid ui option Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-15 18:19:47 UTC (rev 6619) +++ trunk/SKMainWindowController.m 2010-07-15 18:24:50 UTC (rev 6620) @@ -1466,7 +1466,7 @@ if ([screen isEqual:[[NSScreen screens] objectAtIndex:0]]) SetSystemUIMode(kUIModeAllHidden, kUIOptionDisableProcessSwitch); else - SetSystemUIMode(kUIModeNormal, kUIOptionDisableProcessSwitch); + SetSystemUIMode(kUIModeNormal, 0); if (wasFullScreen) { [pdfSplitView setFrame:[centerContentView bounds]]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-15 18:19:52
|
Revision: 6619 http://skim-app.svn.sourceforge.net/skim-app/?rev=6619&view=rev Author: hofman Date: 2010-07-15 18:19:47 +0000 (Thu, 15 Jul 2010) Log Message: ----------- invert check Modified Paths: -------------- trunk/SKMainWindowController.m trunk/SKMainWindowController_UI.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-15 18:18:31 UTC (rev 6618) +++ trunk/SKMainWindowController.m 2010-07-15 18:19:47 UTC (rev 6619) @@ -1392,7 +1392,7 @@ [pdfView setBackgroundColor:[NSColor clearColor]]; [fullScreenWindow setBackgroundColor:[NSColor blackColor]]; - [fullScreenWindow setLevel:[[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] ? NSPopUpMenuWindowLevel : NSNormalWindowLevel]; + [fullScreenWindow setLevel:[[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel]; SKPDFView *notesPdfView = [[self presentationNotesDocument] pdfView]; if (notesPdfView) Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2010-07-15 18:18:31 UTC (rev 6618) +++ trunk/SKMainWindowController_UI.m 2010-07-15 18:19:47 UTC (rev 6619) @@ -1534,13 +1534,13 @@ } - (void)handleApplicationDidResignActiveNotification:(NSNotification *)notification { - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey]) { + if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { [fullScreenWindow setLevel:NSNormalWindowLevel]; } } - (void)handleApplicationWillBecomeActiveNotification:(NSNotification *)notification { - if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey]) { + if ([self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO) { [fullScreenWindow setLevel:NSPopUpMenuWindowLevel]; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-15 18:18:37
|
Revision: 6618 http://skim-app.svn.sourceforge.net/skim-app/?rev=6618&view=rev Author: hofman Date: 2010-07-15 18:18:31 +0000 (Thu, 15 Jul 2010) Log Message: ----------- invert check Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-15 11:23:39 UTC (rev 6617) +++ trunk/SKMainWindowController.m 2010-07-15 18:18:31 UTC (rev 6618) @@ -1312,7 +1312,7 @@ - (void)goFullScreen { NSScreen *screen = [[self window] screen] ?: [NSScreen mainScreen]; // @@ screen: or should we use the main screen? NSColor *backgroundColor = [self isPresentation] ? [NSColor blackColor] : [[NSUserDefaults standardUserDefaults] colorForKey:SKFullScreenBackgroundColorKey]; - NSInteger level = [self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] ? NSPopUpMenuWindowLevel : NSNormalWindowLevel; + NSInteger level = [self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] == NO ? NSPopUpMenuWindowLevel : NSNormalWindowLevel; // Create the full-screen window if it does not already exist. if (fullScreenWindow == nil) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-15 11:23:45
|
Revision: 6617 http://skim-app.svn.sourceforge.net/skim-app/?rev=6617&view=rev Author: hofman Date: 2010-07-15 11:23:39 +0000 (Thu, 15 Jul 2010) Log Message: ----------- use SKDESTROY macro for timers Modified Paths: -------------- trunk/SKMainWindowController.m trunk/SKMainWindowController_UI.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-13 10:16:10 UTC (rev 6616) +++ trunk/SKMainWindowController.m 2010-07-15 11:23:39 UTC (rev 6617) @@ -1632,8 +1632,7 @@ - (void)removeTemporaryAnnotations { [temporaryAnnotationTimer invalidate]; - [temporaryAnnotationTimer release]; - temporaryAnnotationTimer = nil; + SKDESTROY(temporaryAnnotationTimer); // for long documents, this is much faster than iterating all pages and sending -isTemporaryAnnotation to each one CFSetApplyFunction((CFSetRef)temporaryAnnotations, removeTemporaryAnnotations, self); [temporaryAnnotations removeAllObjects]; @@ -2504,8 +2503,7 @@ if (snapshotTimer) { [snapshotTimer invalidate]; - [snapshotTimer release]; - snapshotTimer = nil; + SKDESTROY(snapshotTimer); } if ([self countOfSnapshots]) @@ -2547,8 +2545,7 @@ } if ([dirtySnapshots count] == 0) { [snapshotTimer invalidate]; - [snapshotTimer release]; - snapshotTimer = nil; + SKDESTROY(snapshotTimer); } } Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2010-07-13 10:16:10 UTC (rev 6616) +++ trunk/SKMainWindowController_UI.m 2010-07-15 11:23:39 UTC (rev 6617) @@ -228,13 +228,11 @@ // timers retain their target, so invalidate them now or they may keep firing after the PDF is gone if (snapshotTimer) { [snapshotTimer invalidate]; - [snapshotTimer release]; - snapshotTimer = nil; + SKDESTROY(snapshotTimer); } if (temporaryAnnotationTimer) { [temporaryAnnotationTimer invalidate]; - [temporaryAnnotationTimer release]; - temporaryAnnotationTimer = nil; + SKDESTROY(temporaryAnnotationTimer); } if ([[pdfView document] isFinding]) [[pdfView document] cancelFindString]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-13 10:16:21
|
Revision: 6616 http://skim-app.svn.sourceforge.net/skim-app/?rev=6616&view=rev Author: hofman Date: 2010-07-13 10:16:10 +0000 (Tue, 13 Jul 2010) Log Message: ----------- Use ivar to distinguish between main and non-main fullscreen windows. Fade out pdfview in temporary fullscreen window, so we can let the main fullscreen window remain main during the fadeout. Modified Paths: -------------- trunk/SKFullScreenWindow.h trunk/SKFullScreenWindow.m trunk/SKMainWindowController.m Modified: trunk/SKFullScreenWindow.h =================================================================== --- trunk/SKFullScreenWindow.h 2010-07-13 09:37:54 UTC (rev 6615) +++ trunk/SKFullScreenWindow.h 2010-07-13 10:16:10 UTC (rev 6616) @@ -40,21 +40,17 @@ #import "SKMainWindow.h" -@interface SKBlackingFullScreenWindow : SKMainWindow <NSAnimationDelegate> { +@interface SKFullScreenWindow : SKMainWindow <NSAnimationDelegate> { NSViewAnimation *animation; + BOOL canBecomeMain; } +@property (nonatomic, retain) NSView *mainView; + - (id)initWithScreen:(NSScreen *)screen; +- (id)initWithScreen:(NSScreen *)screen canBecomeMain:(BOOL)flag; - (void)fadeOutBlocking; - (void)fadeOut; @end - -#pragma mark - - -@interface SKFullScreenWindow : SKBlackingFullScreenWindow - -@property (nonatomic, retain) NSView *mainView; - -@end Modified: trunk/SKFullScreenWindow.m =================================================================== --- trunk/SKFullScreenWindow.m 2010-07-13 09:37:54 UTC (rev 6615) +++ trunk/SKFullScreenWindow.m 2010-07-13 10:16:10 UTC (rev 6616) @@ -43,14 +43,25 @@ #import "SKStringConstants.h" -@implementation SKBlackingFullScreenWindow +@implementation SKFullScreenWindow +@dynamic mainView; + - (id)initWithScreen:(NSScreen *)screen { + return [self initWithScreen:screen canBecomeMain:YES]; +} + +- (id)initWithScreen:(NSScreen *)screen canBecomeMain:(BOOL)flag { if (screen == nil) screen = [NSScreen mainScreen]; if (self = [self initWithContentRect:[screen frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO screen:screen]) { + canBecomeMain = flag; [self setBackgroundColor:[NSColor blackColor]]; [self setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces]; + [self setReleasedWhenClosed:canBecomeMain == NO]; + [self setDisplaysWhenScreenProfileChanges:canBecomeMain]; + [self setAcceptsMouseMovedEvents:canBecomeMain]; + [self setExcludedFromWindowsMenu:canBecomeMain == NO]; } return self; } @@ -65,10 +76,32 @@ [super dealloc]; } -- (BOOL)canBecomeKeyWindow { return NO; } +- (BOOL)canBecomeKeyWindow { return canBecomeMain; } -- (BOOL)canBecomeMainWindow { return YES; } +- (BOOL)canBecomeMainWindow { return canBecomeMain; } +- (void)sendEvent:(NSEvent *)theEvent { + if (canBecomeMain && ([theEvent type] == NSLeftMouseDown || [theEvent type] == NSRightMouseDown)) { + SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; + if ([wc isPresentation] && ([theEvent type] == NSRightMouseDown || ([theEvent modifierFlags] & NSControlKeyMask))) { + [wc doGoToPreviousPage:self]; + return; + } + } + [super sendEvent:theEvent]; +} + +- (void)keyDown:(NSEvent *)theEvent { + unichar ch = [theEvent firstCharacter]; + NSUInteger modifierFlags = [theEvent deviceIndependentModifierFlags]; + + if (canBecomeMain && modifierFlags == 0 && ch == SKEscapeCharacter) { + [(SKMainWindowController *)[self windowController] exitFullScreen:self]; + return; + } + [super keyDown:theEvent]; +} + - (void)orderFront:(id)sender { [self stopAnimation]; [self setAlphaValue:1.0]; @@ -124,55 +157,6 @@ [self setAlphaValue:1.0]; } -@end - -#pragma mark - - -@implementation SKFullScreenWindow - -@dynamic mainView; - -- (id)initWithScreen:(NSScreen *)screen { - if (self = [super initWithScreen:screen]) { - [self setReleasedWhenClosed:NO]; - [self setDisplaysWhenScreenProfileChanges:YES]; - [self setAcceptsMouseMovedEvents:YES]; - [self setExcludedFromWindowsMenu:NO]; - } - return self; -} - -- (BOOL)canBecomeKeyWindow { return YES; } - -- (BOOL)canBecomeMainWindow { return YES; } - -- (void)sendEvent:(NSEvent *)theEvent { - if ([theEvent type] == NSLeftMouseDown || [theEvent type] == NSRightMouseDown) { - SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; - if ([wc isPresentation] && ([theEvent type] == NSRightMouseDown || ([theEvent modifierFlags] & NSControlKeyMask))) { - [wc doGoToPreviousPage:self]; - return; - } - } - [super sendEvent:theEvent]; -} - -- (void)keyDown:(NSEvent *)theEvent { - unichar ch = [theEvent firstCharacter]; - NSUInteger modifierFlags = [theEvent deviceIndependentModifierFlags]; - - if (modifierFlags == 0) { - SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; - if (ch == SKEscapeCharacter) { - [wc exitFullScreen:self]; - } else { - [super keyDown:theEvent]; - } - } else { - [super keyDown:theEvent]; - } -} - - (NSView *)mainView { return [[[self contentView] subviews] lastObject]; } Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-13 09:37:54 UTC (rev 6615) +++ trunk/SKMainWindowController.m 2010-07-13 10:16:10 UTC (rev 6616) @@ -1342,7 +1342,7 @@ [blankingWindows removeAllObjects]; for (NSScreen *screenToBlank in [NSScreen screens]) { if ([screenToBlank isEqual:screen] == NO) { - SKBlackingFullScreenWindow *window = [[SKBlackingFullScreenWindow alloc] initWithScreen:screenToBlank]; + SKFullScreenWindow *window = [[SKFullScreenWindow alloc] initWithScreen:screenToBlank canBecomeMain:NO]; [window setBackgroundColor:backgroundColor]; [window setLevel:NSFloatingWindowLevel]; [window setFrame:[screenToBlank frame] display:YES]; @@ -1490,12 +1490,18 @@ if ([[fullScreenWindow firstResponder] isDescendantOf:pdfView]) [fullScreenWindow makeFirstResponder:nil]; - SKBlackingFullScreenWindow *bgWindow = [[[SKBlackingFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]] autorelease]; - [bgWindow setBackgroundColor:[fullScreenWindow backgroundColor]]; - [bgWindow setLevel:[fullScreenWindow level]]; - [bgWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; + // first fade out the pdfView so we can move the pdfView to the main window before it's revealed + // animating the view itself does no work as PDFView does not work nicely with CoreAnimation, so we use a temporary window + SKFullScreenWindow *fadeWindow = [[SKFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen] canBecomeMain:NO]; + [fadeWindow setBackgroundColor:[fullScreenWindow backgroundColor]]; + [fadeWindow setLevel:[fullScreenWindow level]]; + [fadeWindow setMainView:[fullScreenWindow mainView]]; + [fadeWindow orderWindow:NSWindowAbove relativeTo:[fullScreenWindow windowNumber]]; + [fadeWindow display]; + [fullScreenWindow display]; [fullScreenWindow setDelegate:nil]; - [fullScreenWindow fadeOutBlocking]; + [fadeWindow fadeOutBlocking]; + [fadeWindow release]; [pdfView setInteractionMode:SKNormalMode screen:[[self window] screen]]; // this should be done before exitPresentationMode to get a smooth transition @@ -1515,19 +1521,19 @@ else [self applyPDFSettings:savedNormalSetup]; - [bgWindow setLevel:NSPopUpMenuWindowLevel]; - - SetSystemUIMode(kUIModeNormal, 0); - for (NSWindowController *wc in [[self document] windowControllers]) { if ([wc isNoteWindowController] || [wc isSnapshotWindowController]) [(id)wc setForceOnTop:NO]; } + [fullScreenWindow setLevel:NSPopUpMenuWindowLevel]; + + SetSystemUIMode(kUIModeNormal, 0); + [self setWindow:mainWindow]; - [mainWindow orderWindow:NSWindowBelow relativeTo:[bgWindow windowNumber]]; + [mainWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; [mainWindow display]; - [bgWindow fadeOut]; + [fullScreenWindow fadeOut]; [mainWindow makeFirstResponder:pdfView]; [mainWindow recalculateKeyViewLoop]; [mainWindow setDelegate:self]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-13 09:38:01
|
Revision: 6615 http://skim-app.svn.sourceforge.net/skim-app/?rev=6615&view=rev Author: hofman Date: 2010-07-13 09:37:54 +0000 (Tue, 13 Jul 2010) Log Message: ----------- allow blacking window to become main, so no other window will become main during fadeout. Move some settings of fullscreen window to initializer. Modified Paths: -------------- trunk/SKFullScreenWindow.m trunk/SKMainWindowController.m Modified: trunk/SKFullScreenWindow.m =================================================================== --- trunk/SKFullScreenWindow.m 2010-07-13 00:18:42 UTC (rev 6614) +++ trunk/SKFullScreenWindow.m 2010-07-13 09:37:54 UTC (rev 6615) @@ -67,7 +67,7 @@ - (BOOL)canBecomeKeyWindow { return NO; } -- (BOOL)canBecomeMainWindow { return NO; } +- (BOOL)canBecomeMainWindow { return YES; } - (void)orderFront:(id)sender { [self stopAnimation]; @@ -137,6 +137,7 @@ [self setReleasedWhenClosed:NO]; [self setDisplaysWhenScreenProfileChanges:YES]; [self setAcceptsMouseMovedEvents:YES]; + [self setExcludedFromWindowsMenu:NO]; } return self; } Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-13 00:18:42 UTC (rev 6614) +++ trunk/SKMainWindowController.m 2010-07-13 09:37:54 UTC (rev 6615) @@ -1315,21 +1315,15 @@ NSInteger level = [self isPresentation] && [[NSUserDefaults standardUserDefaults] boolForKey:SKUseNormalLevelForPresentationKey] ? NSPopUpMenuWindowLevel : NSNormalWindowLevel; // Create the full-screen window if it does not already exist. - if (fullScreenWindow == nil) { + if (fullScreenWindow == nil) fullScreenWindow = [[SKFullScreenWindow alloc] initWithScreen:screen]; - [fullScreenWindow setExcludedFromWindowsMenu:NO]; - } // explicitly set window frame; screen may have moved, or may be nil (in which case [fullScreenWindow frame] is wrong, which is weird); the first time through this method, [fullScreenWindow screen] is nil [fullScreenWindow setFrame:[screen frame] display:NO]; if ([[mainWindow firstResponder] isDescendantOf:pdfView]) [mainWindow makeFirstResponder:nil]; - if ([self isPresentation]) { - [fullScreenWindow setMainView:pdfView]; - } else { - [fullScreenWindow setMainView:pdfSplitView]; - } + [fullScreenWindow setMainView:([self isPresentation] ? (id)pdfView : (id)pdfSplitView)]; [fullScreenWindow setBackgroundColor:backgroundColor]; [fullScreenWindow setLevel:level]; [pdfView setBackgroundColor:[self isPresentation] ? [NSColor clearColor] : backgroundColor]; @@ -1365,7 +1359,6 @@ [self setWindow:fullScreenWindow]; [fullScreenWindow makeKeyAndOrderFront:self]; [fullScreenWindow makeFirstResponder:pdfView]; - [fullScreenWindow setAcceptsMouseMovedEvents:YES]; [fullScreenWindow recalculateKeyViewLoop]; [mainWindow orderOut:self]; [fullScreenWindow setDelegate:self]; @@ -1526,10 +1519,7 @@ SetSystemUIMode(kUIModeNormal, 0); - NSEnumerator *wcEnum = [[[self document] windowControllers] objectEnumerator]; - NSWindowController *wc = [wcEnum nextObject]; - - while (wc = [wcEnum nextObject]) { + for (NSWindowController *wc in [[self document] windowControllers]) { if ([wc isNoteWindowController] || [wc isSnapshotWindowController]) [(id)wc setForceOnTop:NO]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-13 00:18:50
|
Revision: 6614 http://skim-app.svn.sourceforge.net/skim-app/?rev=6614&view=rev Author: hofman Date: 2010-07-13 00:18:42 +0000 (Tue, 13 Jul 2010) Log Message: ----------- remove blanking windows when we're done with them, make sure they're autoreleased long enough Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-13 00:14:11 UTC (rev 6613) +++ trunk/SKMainWindowController.m 2010-07-13 00:18:42 UTC (rev 6614) @@ -1546,6 +1546,8 @@ [self synchronizeWindowTitleWithDocumentName]; [blankingWindows makeObjectsPerformSelector:@selector(fadeOut)]; + [[blankingWindows copy] autorelease]; + [blankingWindows removeAllObjects]; } #pragma mark Swapping tables This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-13 00:16:36
|
Revision: 6613 http://skim-app.svn.sourceforge.net/skim-app/?rev=6613&view=rev Author: hofman Date: 2010-07-13 00:14:11 +0000 (Tue, 13 Jul 2010) Log Message: ----------- invert inheritance of full screen window classes Modified Paths: -------------- trunk/SKFullScreenWindow.h trunk/SKFullScreenWindow.m trunk/SKMainWindowController.m Modified: trunk/SKFullScreenWindow.h =================================================================== --- trunk/SKFullScreenWindow.h 2010-07-13 00:02:39 UTC (rev 6612) +++ trunk/SKFullScreenWindow.h 2010-07-13 00:14:11 UTC (rev 6613) @@ -40,19 +40,21 @@ #import "SKMainWindow.h" -@interface SKFullScreenWindow : SKMainWindow <NSAnimationDelegate> { +@interface SKBlackingFullScreenWindow : SKMainWindow <NSAnimationDelegate> { NSViewAnimation *animation; } - (id)initWithScreen:(NSScreen *)screen; -@property (nonatomic, retain) NSView *mainView; - - (void)fadeOutBlocking; - (void)fadeOut; @end +#pragma mark - -@interface SKBlackingFullScreenWindow : SKFullScreenWindow +@interface SKFullScreenWindow : SKBlackingFullScreenWindow + +@property (nonatomic, retain) NSView *mainView; + @end Modified: trunk/SKFullScreenWindow.m =================================================================== --- trunk/SKFullScreenWindow.m 2010-07-13 00:02:39 UTC (rev 6612) +++ trunk/SKFullScreenWindow.m 2010-07-13 00:14:11 UTC (rev 6613) @@ -43,17 +43,12 @@ #import "SKStringConstants.h" -@implementation SKFullScreenWindow +@implementation SKBlackingFullScreenWindow -@dynamic mainView; - - (id)initWithScreen:(NSScreen *)screen { if (screen == nil) screen = [NSScreen mainScreen]; if (self = [self initWithContentRect:[screen frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO screen:screen]) { - [self setReleasedWhenClosed:NO]; - [self setDisplaysWhenScreenProfileChanges:YES]; - [self setAcceptsMouseMovedEvents:YES]; [self setBackgroundColor:[NSColor blackColor]]; [self setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces]; } @@ -70,46 +65,10 @@ [super dealloc]; } -- (BOOL)canBecomeKeyWindow { return YES; } +- (BOOL)canBecomeKeyWindow { return NO; } -- (BOOL)canBecomeMainWindow { return YES; } +- (BOOL)canBecomeMainWindow { return NO; } -- (void)keyDown:(NSEvent *)theEvent { - unichar ch = [theEvent firstCharacter]; - NSUInteger modifierFlags = [theEvent deviceIndependentModifierFlags]; - - if (modifierFlags == 0) { - SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; - if (ch == SKEscapeCharacter) { - [wc exitFullScreen:self]; - } else { - [super keyDown:theEvent]; - } - } else { - [super keyDown:theEvent]; - } -} - -- (NSView *)mainView { - return [[[self contentView] subviews] lastObject]; -} - -- (void)setMainView:(NSView *)view { - [view setFrame:[[self contentView] bounds]]; - [[self contentView] addSubview:view]; -} - -- (void)sendEvent:(NSEvent *)theEvent { - if ([theEvent type] == NSLeftMouseDown || [theEvent type] == NSRightMouseDown) { - SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; - if ([wc isPresentation] && ([theEvent type] == NSRightMouseDown || ([theEvent modifierFlags] & NSControlKeyMask))) { - [wc doGoToPreviousPage:self]; - return; - } - } - [super sendEvent:theEvent]; -} - - (void)orderFront:(id)sender { [self stopAnimation]; [self setAlphaValue:1.0]; @@ -167,11 +126,59 @@ @end +#pragma mark - -@implementation SKBlackingFullScreenWindow +@implementation SKFullScreenWindow -- (BOOL)canBecomeKeyWindow { return NO; } +@dynamic mainView; -- (BOOL)canBecomeMainWindow { return NO; } +- (id)initWithScreen:(NSScreen *)screen { + if (self = [super initWithScreen:screen]) { + [self setReleasedWhenClosed:NO]; + [self setDisplaysWhenScreenProfileChanges:YES]; + [self setAcceptsMouseMovedEvents:YES]; + } + return self; +} +- (BOOL)canBecomeKeyWindow { return YES; } + +- (BOOL)canBecomeMainWindow { return YES; } + +- (void)sendEvent:(NSEvent *)theEvent { + if ([theEvent type] == NSLeftMouseDown || [theEvent type] == NSRightMouseDown) { + SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; + if ([wc isPresentation] && ([theEvent type] == NSRightMouseDown || ([theEvent modifierFlags] & NSControlKeyMask))) { + [wc doGoToPreviousPage:self]; + return; + } + } + [super sendEvent:theEvent]; +} + +- (void)keyDown:(NSEvent *)theEvent { + unichar ch = [theEvent firstCharacter]; + NSUInteger modifierFlags = [theEvent deviceIndependentModifierFlags]; + + if (modifierFlags == 0) { + SKMainWindowController *wc = (SKMainWindowController *)[self windowController]; + if (ch == SKEscapeCharacter) { + [wc exitFullScreen:self]; + } else { + [super keyDown:theEvent]; + } + } else { + [super keyDown:theEvent]; + } +} + +- (NSView *)mainView { + return [[[self contentView] subviews] lastObject]; +} + +- (void)setMainView:(NSView *)view { + [view setFrame:[[self contentView] bounds]]; + [[self contentView] addSubview:view]; +} + @end Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-13 00:02:39 UTC (rev 6612) +++ trunk/SKMainWindowController.m 2010-07-13 00:14:11 UTC (rev 6613) @@ -1348,7 +1348,7 @@ [blankingWindows removeAllObjects]; for (NSScreen *screenToBlank in [NSScreen screens]) { if ([screenToBlank isEqual:screen] == NO) { - SKFullScreenWindow *window = [[SKBlackingFullScreenWindow alloc] initWithScreen:screenToBlank]; + SKBlackingFullScreenWindow *window = [[SKBlackingFullScreenWindow alloc] initWithScreen:screenToBlank]; [window setBackgroundColor:backgroundColor]; [window setLevel:NSFloatingWindowLevel]; [window setFrame:[screenToBlank frame] display:YES]; @@ -1497,7 +1497,7 @@ if ([[fullScreenWindow firstResponder] isDescendantOf:pdfView]) [fullScreenWindow makeFirstResponder:nil]; - SKFullScreenWindow *bgWindow = [[[SKBlackingFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]] autorelease]; + SKBlackingFullScreenWindow *bgWindow = [[[SKBlackingFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]] autorelease]; [bgWindow setBackgroundColor:[fullScreenWindow backgroundColor]]; [bgWindow setLevel:[fullScreenWindow level]]; [bgWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-13 00:02:45
|
Revision: 6612 http://skim-app.svn.sourceforge.net/skim-app/?rev=6612&view=rev Author: hofman Date: 2010-07-13 00:02:39 +0000 (Tue, 13 Jul 2010) Log Message: ----------- don't let fullscreen windows for blacking and fading out become main or key Modified Paths: -------------- trunk/SKFullScreenWindow.h trunk/SKFullScreenWindow.m trunk/SKMainWindowController.m Modified: trunk/SKFullScreenWindow.h =================================================================== --- trunk/SKFullScreenWindow.h 2010-07-12 23:48:06 UTC (rev 6611) +++ trunk/SKFullScreenWindow.h 2010-07-13 00:02:39 UTC (rev 6612) @@ -52,3 +52,7 @@ - (void)fadeOut; @end + + +@interface SKBlackingFullScreenWindow : SKFullScreenWindow +@end Modified: trunk/SKFullScreenWindow.m =================================================================== --- trunk/SKFullScreenWindow.m 2010-07-12 23:48:06 UTC (rev 6611) +++ trunk/SKFullScreenWindow.m 2010-07-13 00:02:39 UTC (rev 6612) @@ -166,3 +166,12 @@ } @end + + +@implementation SKBlackingFullScreenWindow + +- (BOOL)canBecomeKeyWindow { return NO; } + +- (BOOL)canBecomeMainWindow { return NO; } + +@end Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-12 23:48:06 UTC (rev 6611) +++ trunk/SKMainWindowController.m 2010-07-13 00:02:39 UTC (rev 6612) @@ -1348,7 +1348,7 @@ [blankingWindows removeAllObjects]; for (NSScreen *screenToBlank in [NSScreen screens]) { if ([screenToBlank isEqual:screen] == NO) { - SKFullScreenWindow *window = [[SKFullScreenWindow alloc] initWithScreen:screenToBlank]; + SKFullScreenWindow *window = [[SKBlackingFullScreenWindow alloc] initWithScreen:screenToBlank]; [window setBackgroundColor:backgroundColor]; [window setLevel:NSFloatingWindowLevel]; [window setFrame:[screenToBlank frame] display:YES]; @@ -1497,7 +1497,7 @@ if ([[fullScreenWindow firstResponder] isDescendantOf:pdfView]) [fullScreenWindow makeFirstResponder:nil]; - SKFullScreenWindow *bgWindow = [[[SKFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]] autorelease]; + SKFullScreenWindow *bgWindow = [[[SKBlackingFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]] autorelease]; [bgWindow setBackgroundColor:[fullScreenWindow backgroundColor]]; [bgWindow setLevel:[fullScreenWindow level]]; [bgWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-12 23:48:12
|
Revision: 6611 http://skim-app.svn.sourceforge.net/skim-app/?rev=6611&view=rev Author: hofman Date: 2010-07-12 23:48:06 +0000 (Mon, 12 Jul 2010) Log Message: ----------- fade out temporary fullscreen window instead of moving the main fullscreen window back up Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-12 17:47:27 UTC (rev 6610) +++ trunk/SKMainWindowController.m 2010-07-12 23:48:06 UTC (rev 6611) @@ -1497,7 +1497,7 @@ if ([[fullScreenWindow firstResponder] isDescendantOf:pdfView]) [fullScreenWindow makeFirstResponder:nil]; - SKFullScreenWindow *bgWindow = [[SKFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]]; + SKFullScreenWindow *bgWindow = [[[SKFullScreenWindow alloc] initWithScreen:[fullScreenWindow screen]] autorelease]; [bgWindow setBackgroundColor:[fullScreenWindow backgroundColor]]; [bgWindow setLevel:[fullScreenWindow level]]; [bgWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; @@ -1522,11 +1522,7 @@ else [self applyPDFSettings:savedNormalSetup]; - [fullScreenWindow orderWindow:NSWindowBelow relativeTo:[bgWindow windowNumber]]; - [fullScreenWindow displayIfNeeded]; - [bgWindow orderOut:nil]; - [bgWindow release]; - [fullScreenWindow setLevel:NSPopUpMenuWindowLevel]; + [bgWindow setLevel:NSPopUpMenuWindowLevel]; SetSystemUIMode(kUIModeNormal, 0); @@ -1539,9 +1535,9 @@ } [self setWindow:mainWindow]; - [mainWindow orderWindow:NSWindowBelow relativeTo:[fullScreenWindow windowNumber]]; + [mainWindow orderWindow:NSWindowBelow relativeTo:[bgWindow windowNumber]]; [mainWindow display]; - [fullScreenWindow fadeOut]; + [bgWindow fadeOut]; [mainWindow makeFirstResponder:pdfView]; [mainWindow recalculateKeyViewLoop]; [mainWindow setDelegate:self]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-12 17:47:33
|
Revision: 6610 http://skim-app.svn.sourceforge.net/skim-app/?rev=6610&view=rev Author: hofman Date: 2010-07-12 17:47:27 +0000 (Mon, 12 Jul 2010) Log Message: ----------- simplify booleans Modified Paths: -------------- trunk/SKSnapshotWindowController.m Modified: trunk/SKSnapshotWindowController.m =================================================================== --- trunk/SKSnapshotWindowController.m 2010-07-12 17:13:08 UTC (rev 6609) +++ trunk/SKSnapshotWindowController.m 2010-07-12 17:47:27 UTC (rev 6610) @@ -298,9 +298,9 @@ - (void)setForceOnTop:(BOOL)flag { forceOnTop = flag; - BOOL keepOnTop = [[NSUserDefaults standardUserDefaults] boolForKey:SKSnapshotsOnTopKey]; - [[self window] setLevel:keepOnTop || forceOnTop ? NSFloatingWindowLevel : NSNormalWindowLevel]; - [[self window] setHidesOnDeactivate:keepOnTop || forceOnTop]; + BOOL onTop = forceOnTop || [[NSUserDefaults standardUserDefaults] boolForKey:SKSnapshotsOnTopKey]; + [[self window] setLevel:onTop ? NSFloatingWindowLevel : NSNormalWindowLevel]; + [[self window] setHidesOnDeactivate:onTop]; [[self window] setCollectionBehavior:forceOnTop ? NSWindowCollectionBehaviorCanJoinAllSpaces : NSWindowCollectionBehaviorDefault]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-12 17:13:15
|
Revision: 6609 http://skim-app.svn.sourceforge.net/skim-app/?rev=6609&view=rev Author: hofman Date: 2010-07-12 17:13:08 +0000 (Mon, 12 Jul 2010) Log Message: ----------- draw black line in drag image Modified Paths: -------------- trunk/SKLineWell.m Modified: trunk/SKLineWell.m =================================================================== --- trunk/SKLineWell.m 2010-07-09 09:37:34 UTC (rev 6608) +++ trunk/SKLineWell.m 2010-07-12 17:13:08 UTC (rev 6609) @@ -305,6 +305,7 @@ NSRectFill(bounds); [[NSColor controlBackgroundColor] setFill]; NSRectFill(NSInsetRect(bounds, 2.0, 2.0)); + [[NSColor blackColor] setStroke]; if (lineWidth > 0.0) [[self path] stroke]; [image unlockFocus]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-09 09:37:41
|
Revision: 6608 http://skim-app.svn.sourceforge.net/skim-app/?rev=6608&view=rev Author: hofman Date: 2010-07-09 09:37:34 +0000 (Fri, 09 Jul 2010) Log Message: ----------- duplicate code for snapshot table row rect in separate method Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-06 10:23:47 UTC (rev 6607) +++ trunk/SKMainWindowController.m 2010-07-09 09:37:34 UTC (rev 6608) @@ -2037,6 +2037,16 @@ [rightSideWindow collapse]; } +- (NSRect)rowRectForSnapshotController:(SKSnapshotWindowController *)controller scrollToVisible:(BOOL)shouldScroll { + NSInteger row = [[rightSideController.snapshotArrayController arrangedObjects] indexOfObject:controller]; + if (shouldScroll) + [rightSideController.snapshotTableView scrollRowToVisible:row]; + NSRect rect = [rightSideController.snapshotTableView frameOfCellAtColumn:0 row:row]; + rect = [rightSideController.snapshotTableView convertRect:rect toView:nil]; + rect.origin = [[rightSideController.snapshotTableView window] convertBaseToScreen:rect.origin]; + return rect; +} + - (NSRect)snapshotControllerTargetRectForMiniaturize:(SKSnapshotWindowController *)controller { if ([self isPresentation] == NO) { if ([self isFullScreen] == NO && [self rightSidePaneIsOpen] == NO) { @@ -2047,29 +2057,13 @@ } [self setRightSidePaneState:SKSnapshotSidePaneState]; } - - NSInteger row = [[rightSideController.snapshotArrayController arrangedObjects] indexOfObject:controller]; - - [rightSideController.snapshotTableView scrollRowToVisible:row]; - - NSRect rect = [rightSideController.snapshotTableView frameOfCellAtColumn:0 row:row]; - - rect = [rightSideController.snapshotTableView convertRect:rect toView:nil]; - rect.origin = [[rightSideController.snapshotTableView window] convertBaseToScreen:rect.origin]; - - return rect; + return [self rowRectForSnapshotController:controller scrollToVisible:YES]; } - (NSRect)snapshotControllerSourceRectForDeminiaturize:(SKSnapshotWindowController *)controller { - [[self document] addWindowController:controller]; - - NSInteger row = [[rightSideController.snapshotArrayController arrangedObjects] indexOfObject:controller]; - NSRect rect = [rightSideController.snapshotTableView frameOfCellAtColumn:0 row:row]; - - rect = [rightSideController.snapshotTableView convertRect:rect toView:nil]; - rect.origin = [[rightSideController.snapshotTableView window] convertBaseToScreen:rect.origin]; - - return rect; + if ([[[self document] windowControllers] containsObject:controller] == NO) + [[self document] addWindowController:controller]; + return [self rowRectForSnapshotController:controller scrollToVisible:NO]; } - (void)showNote:(PDFAnnotation *)annotation { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-06 10:23:53
|
Revision: 6607 http://skim-app.svn.sourceforge.net/skim-app/?rev=6607&view=rev Author: hofman Date: 2010-07-06 10:23:47 +0000 (Tue, 06 Jul 2010) Log Message: ----------- give an open state for side pane state in presentation mode Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2010-07-05 09:24:03 UTC (rev 6606) +++ trunk/SKMainWindowController.m 2010-07-06 10:23:47 UTC (rev 6607) @@ -956,6 +956,8 @@ NSInteger state; if ([self isFullScreen]) state = [leftSideWindow state]; + else if ([self isPresentation]) + state = [leftSideWindow isVisible]; else if (mwcFlags.usesDrawers) state = [leftSideDrawer state]; else @@ -967,6 +969,8 @@ NSInteger state; if ([self isFullScreen]) state = [rightSideWindow state]; + else if ([self isPresentation]) + state = [rightSideWindow isVisible]; else if (mwcFlags.usesDrawers) state = [rightSideDrawer state]; else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2010-07-05 09:24:09
|
Revision: 6606 http://skim-app.svn.sourceforge.net/skim-app/?rev=6606&view=rev Author: hofman Date: 2010-07-05 09:24:03 +0000 (Mon, 05 Jul 2010) Log Message: ----------- define some macros and static sets for string literals Modified Paths: -------------- trunk/PDFSelection_SKExtensions.m Modified: trunk/PDFSelection_SKExtensions.m =================================================================== --- trunk/PDFSelection_SKExtensions.m 2010-07-04 21:23:25 UTC (rev 6605) +++ trunk/PDFSelection_SKExtensions.m 2010-07-05 09:24:03 UTC (rev 6606) @@ -261,6 +261,10 @@ return range; } +#define TEXT_KEY @"text" +#define RANGES_KEY @"ranges" +#define CONTAINER_KEY @"container" + static NSArray *characterRangesAndContainersForSpecifier(NSScriptObjectSpecifier *specifier, BOOL continuous, BOOL continuousContainers) { if ([specifier isKindOfClass:[NSScriptObjectSpecifier class]] == NO) return nil; @@ -268,7 +272,11 @@ NSMutableArray *rangeDicts = [NSMutableArray array]; NSString *key = [specifier key]; - if ([key isEqualToString:@"characters"] || [key isEqualToString:@"words"] || [key isEqualToString:@"paragraphs"] || [key isEqualToString:@"attributeRuns"]) { + static NSSet *richTextElementKeys = nil; + if (richTextElementKeys == nil) + richTextElementKeys = [[NSSet alloc] initWithObjects:@"characters", @"words", @"paragraphs", @"attributeRuns", nil]; + + if ([richTextElementKeys containsObject:key]) { // get the richText specifier and textStorage NSArray *dicts = characterRangesAndContainersForSpecifier([specifier containerSpecifier], continuousContainers, continuousContainers); @@ -276,8 +284,8 @@ return nil; for (NSMutableDictionary *dict in dicts) { - NSTextStorage *containerText = [dict objectForKey:@"text"]; - NSPointerArray *textRanges = [dict objectForKey:@"ranges"]; + NSTextStorage *containerText = [dict objectForKey:TEXT_KEY]; + NSPointerArray *textRanges = [dict objectForKey:RANGES_KEY]; NSUInteger ri, numRanges = [textRanges count]; NSPointerArray *ranges = [[NSPointerArray alloc] initForRangePointers]; @@ -401,7 +409,7 @@ } if ([ranges count]) { - [dict setObject:ranges forKey:@"ranges"]; + [dict setObject:ranges forKey:RANGES_KEY]; [rangeDicts addObject:dict]; } [ranges release]; @@ -433,7 +441,7 @@ NSPointerArray *ranges = [[NSPointerArray alloc] initForRangePointers]; NSRange range = NSMakeRange(0, [containerText length]); [ranges addPointer:&range]; - NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:ranges, @"ranges", containerText, @"text", container, @"container", nil]; + NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:ranges, RANGES_KEY, containerText, TEXT_KEY, container, CONTAINER_KEY, nil]; [rangeDicts addObject:dict]; [dict release]; [ranges release]; @@ -457,7 +465,10 @@ NSScriptObjectSpecifier *spec = [specifier objectAtIndex:0]; if ([spec isKindOfClass:[NSPropertySpecifier class]]) { NSString *key = [spec key]; - if ([[NSSet setWithObjects:@"characters", @"words", @"paragraphs", @"attributeRuns", @"richText", @"pages", nil] containsObject:key] == NO) { + static NSSet *selectionKeys = nil; + if (selectionKeys == nil) + selectionKeys = [[NSSet alloc] initWithObjects:@"characters", @"words", @"paragraphs", @"attributeRuns", @"richText", @"pages", nil]; + if ([selectionKeys containsObject:key] == NO) { // this allows to use selection properties directly specifier = [spec objectsByEvaluatingSpecifier]; if ([specifier isKindOfClass:[NSArray class]] == NO) @@ -476,8 +487,8 @@ PDFDocument *doc = nil; for (NSDictionary *dict in dicts) { - id container = [dict objectForKey:@"container"]; - NSPointerArray *ranges = [dict objectForKey:@"ranges"]; + id container = [dict objectForKey:CONTAINER_KEY]; + NSPointerArray *ranges = [dict objectForKey:RANGES_KEY]; NSUInteger i, numRanges = [ranges count]; if ([container isKindOfClass:[SKMainDocument class]] && (doc == nil || [doc isEqual:[container pdfDocument]])) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |