Revision: 15147 http://sourceforge.net/p/skim-app/code/15147 Author: hofman Date: 2025-05-03 14:51:40 +0000 (Sat, 03 May 2025) Log Message: ----------- Handle poge navigation events in overview view
Modified Paths: -------------- trunk/SKOverviewView.m Modified: trunk/SKOverviewView.m =================================================================== --- trunk/SKOverviewView.m 2025-05-03 14:38:42 UTC (rev 15146) +++ trunk/SKOverviewView.m 2025-05-03 14:51:40 UTC (rev 15147) @@ -40,6 +40,7 @@ #import "SKTypeSelectHelper.h" #import "NSEvent_SKExtensions.h" #import "SKApplication.h" +#import "SKMainWindowController_Actions.h" @interface NSCollectionView (SKPrivateDeclarations) @@ -52,11 +53,21 @@ - (void)keyDown:(NSEvent *)theEvent { unichar eventChar = [theEvent firstCharacter]; + NSUInteger modifiers = [theEvent deviceIndependentModifierFlags] & ~NSEventModifierFlagCapsLock; + NSUInteger standardModifiers = modifiers & ~NSEventModifierFlagNumericPad & ~NSEventModifierFlagFunction; - if ((eventChar == NSNewlineCharacter || eventChar == NSEnterCharacter || eventChar == NSCarriageReturnCharacter) && [theEvent deviceIndependentModifierFlags] == 0 && [self doubleClickAction]) { + if ((eventChar == NSNewlineCharacter || eventChar == NSEnterCharacter || eventChar == NSCarriageReturnCharacter) && modifiers == 0 && [self doubleClickAction]) { [self tryToPerform:[self doubleClickAction] with:self]; - } else if (eventChar == 'p' && [theEvent deviceIndependentModifierFlags] == 0 && [self singleClickAction]) { + } else if (eventChar == 'p' && modifiers == 0 && [self singleClickAction]) { [self tryToPerform:[self singleClickAction] with:self]; + } else if ((eventChar == NSDownArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSRightArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSPageDownFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToNextPage:) with:self]; + } else if ((eventChar == NSUpArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSLeftArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSPageUpFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToPreviousPage:) with:self]; + } else if ((eventChar == NSLeftArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSUpArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSHomeFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToFirstPage:) with:self]; + } else if ((eventChar == NSRightArrowFunctionKey && standardModifiers == NSEventModifierFlagOption) || (eventChar == NSDownArrowFunctionKey && standardModifiers == NSEventModifierFlagCommand) || (eventChar == NSEndFunctionKey && standardModifiers == 0)) { + [self tryToPerform:@selector(doGoToLastPage:) with:self]; } else if ([typeSelectHelper handleEvent:theEvent] == NO) { [super keyDown:theEvent]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit