Revision: 16318
          http://sourceforge.net/p/skim-app/code/16318
Author:   hofman
Date:     2026-05-26 16:11:18 +0000 (Tue, 26 May 2026)
Log Message:
-----------
check for character for note tool shortcut in one call

Modified Paths:
--------------
    trunk/SKPDFView.m

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2026-05-26 13:59:17 UTC (rev 16317)
+++ trunk/SKPDFView.m   2026-05-26 16:11:18 UTC (rev 16318)
@@ -1589,6 +1589,11 @@
 #define IS_ARROW(eventChar) (eventChar == NSRightArrowFunctionKey || eventChar 
== NSLeftArrowFunctionKey || eventChar == NSUpArrowFunctionKey || eventChar == 
NSDownArrowFunctionKey)
 #define IS_ENTER(eventChar) (eventChar == NSEnterCharacter || eventChar == 
NSFormFeedCharacter || eventChar == NSNewlineCharacter || eventChar == 
NSCarriageReturnCharacter)
 
+static inline NSInteger indexOfCharInString(char ch, char *str) {
+    char *c = strchr(str, ch);
+    return c == NULL ? -1 : (NSInteger)(c - str);
+}
+
 - (void)keyDown:(NSEvent *)theEvent
 {
     unichar eventChar = [theEvent firstCharacter];
@@ -1627,24 +1632,8 @@
     // with some keyboard layouts, e.g. Japanese, the '=' character requires 
Shift
     } else if ([currentAnnotation isResizable] && [currentAnnotation isLine] 
== NO && [currentAnnotation isInk] == NO && (eventChar == '=') && ((modifiers & 
~(NSEventModifierFlagOption | NSEventModifierFlagShift)) == 
NSEventModifierFlagControl)) {
         [self doAutoSizeActiveNoteIgnoringWidth:(modifiers & 
NSEventModifierFlagOption) != 0];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 't') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeFreeText];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'n') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeAnchored];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'c') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeCircle];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'b') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeSquare];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'h') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeHighlight];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'u') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeUnderline];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 's') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeStrikeOut];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'l') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeLine];
-    } else if ([self toolMode] == SKToolModeNote && (eventChar == 'f') && 
(modifiers == 0)) {
-        [self setAnnotationMode:SKNoteTypeInk];
+    } else if ([self toolMode] == SKToolModeNote && (modifiers == 0) && 
(eventChar >= 'b' && eventChar <= 'u' && indexOfCharInString(eventChar, 
"tncbhuslf") != -1)) {
+        [self setAnnotationMode:indexOfCharInString(eventChar, "tncbhuslf")];
     } else if ((eventChar == '?') && ((modifiers & ~NSEventModifierFlagShift) 
== 0)) {
         [self showHelpMenu];
     } else if ((eventChar == NSLeftArrowFunctionKey) && (standardModifiers == 
NSEventModifierFlagOption) && [self canGoToFirstPage]) {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to