Revision: 13928
          http://sourceforge.net/p/skim-app/code/13928
Author:   hofman
Date:     2023-12-19 10:17:47 +0000 (Tue, 19 Dec 2023)
Log Message:
-----------
use drag image for dragged page for items in overvier that are not yet loaded, 
get frame from collection view

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

Modified: trunk/SKThumbnailView.m
===================================================================
--- trunk/SKThumbnailView.m     2023-12-19 00:21:38 UTC (rev 13927)
+++ trunk/SKThumbnailView.m     2023-12-19 10:17:47 UTC (rev 13928)
@@ -49,6 +49,7 @@
 #import "NSColor_SKExtensions.h"
 #import "SKThumbnailImageView.h"
 #import "NSPasteboard_SKExtensions.h"
+#import "NSGeometry_SKExtensions.h"
 
 #define MARGIN 8.0
 #define TEXT_MARGIN 4.0
@@ -456,15 +457,21 @@
                     if (idx == pageIndex) {
                         [dragItems addObject:dragItem];
                     } else {
+                        NSPasteboardItem *dummyItem = [[NSPasteboardItem 
alloc] init];
+                        [dummyItem setData:[NSData data] 
forType:SKPasteboardTypeDummy];
+                        NSDraggingItem *dummyDragItem = [[NSDraggingItem 
alloc] initWithPasteboardWriter:dummyItem];
+                        NSRect rect;
                         SKThumbnailView *view = (SKThumbnailView 
*)[[collectionView itemAtIndexPath:[NSIndexPath indexPathForItem:idx 
inSection:0]] view];
                         if (view) {
-                            NSPasteboardItem *dummyItem = [[NSPasteboardItem 
alloc] init];
-                            [dummyItem setData:[NSData data] 
forType:SKPasteboardTypeDummy];
-                            NSDraggingItem *dummyDragItem = [[NSDraggingItem 
alloc] initWithPasteboardWriter:dummyItem];
-                            NSRect rect = [self convertRect:[view 
draggingFrame] fromView:view];
-                            [dummyDragItem setDraggingFrame:rect 
contents:[view draggingImage]];
+                            rect = [self convertRect:[view draggingFrame] 
fromView:view];
+                        } else {
+                            NSPoint point = [self convertRect:[collectionView 
frameForItemAtIndex:idx] fromView:collectionView].origin;
+                            rect = [self draggingFrame];
+                            rect.origin.x += point.x;
+                            rect.origin.y += point.y;
+                        }
+                        [dummyDragItem setDraggingFrame:rect contents:[view ?: 
self draggingImage]];
                             [dragItems addObject:dummyDragItem];
-                        }
                     }
                 }];
             }

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