Revision: 16367
          http://sourceforge.net/p/skim-app/code/16367
Author:   hofman
Date:     2026-06-07 15:53:47 +0000 (Sun, 07 Jun 2026)
Log Message:
-----------
delay temporary markup tool mode for possible double or triple click

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

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2026-06-07 14:36:02 UTC (rev 16366)
+++ trunk/SKPDFView.m   2026-06-07 15:53:47 UTC (rev 16367)
@@ -670,13 +670,15 @@
     }
 }
 
-- (void)resetTemporaryToolMode {
+- (void)performTemporaryMarkupToolMode {
+    if (IS_MARKUP_TOOL(temporaryToolMode) && [[self currentSelection] 
hasCharacters])
+        [self 
addMarkupAnnotationWithType:NOTE_TYPE_FROM_TEMP_TOOL_MODE(temporaryToolMode) 
selection:nil];
     [self setTemporaryToolMode:SKToolModeNone];
 }
 
 - (void)setTemporaryToolMode:(SKTemporaryToolMode)newTemporaryToolMode {
     if (temporaryToolMode != newTemporaryToolMode) {
-        [[self class] cancelPreviousPerformRequestsWithTarget:self 
selector:@selector(resetTemporaryToolMode) object:nil];
+        [[self class] cancelPreviousPerformRequestsWithTarget:self 
selector:@selector(performTemporaryMarkupToolMode) object:nil];
         temporaryToolMode = newTemporaryToolMode;
         [[NSNotificationCenter defaultCenter] 
postNotificationName:SKPDFViewTemporaryToolModeChangedNotification object:self];
     }
@@ -1730,16 +1732,17 @@
             [self doDragAnnotationWithEvent:theEvent];
         } else {
             [self setCurrentAnnotation:nil];
+            [[self class] cancelPreviousPerformRequestsWithTarget:self 
selector:@selector(performTemporaryMarkupToolMode) object:nil];
             BOOL mayMultiClick = [theEvent clickCount] < 3 && [NSApp 
willDragMouse] == NO;
             [super mouseDown:theEvent];
-            if ([[self currentSelection] hasCharacters])
+            if (mayMultiClick) {
+                [self 
performSelectorOnce:@selector(performTemporaryMarkupToolMode) 
afterDelay:[NSEvent doubleClickInterval]];
+                delayTempToolMode = YES;
+            } else if ([[self currentSelection] hasCharacters]) {
                 [self 
addMarkupAnnotationWithType:NOTE_TYPE_FROM_TEMP_TOOL_MODE(temporaryToolMode) 
selection:nil];
-            else if (mayMultiClick)
-                delayTempToolMode = YES;
+            }
         }
-        if (delayTempToolMode)
-            [self performSelectorOnce:@selector(resetTemporaryToolMode) 
afterDelay:[NSEvent doubleClickInterval]];
-        else
+        if (delayTempToolMode == NO)
             [self setTemporaryToolMode:SKToolModeNone];
         if (wantsLoupe)
             [loupeController update];

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