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

Reply via email to