Revision: 13914
http://sourceforge.net/p/skim-app/code/13914
Author: hofman
Date: 2023-12-17 23:22:11 +0000 (Sun, 17 Dec 2023)
Log Message:
-----------
add drag image component for all pages dragged from overview
Modified Paths:
--------------
trunk/SKThumbnailView.m
Modified: trunk/SKThumbnailView.m
===================================================================
--- trunk/SKThumbnailView.m 2023-12-17 16:51:17 UTC (rev 13913)
+++ trunk/SKThumbnailView.m 2023-12-17 23:22:11 UTC (rev 13914)
@@ -416,6 +416,16 @@
#pragma mark Event handling
+- (NSDraggingImageComponent *)draggingImageComponent {
+ NSDraggingImageComponent *component = [[NSDraggingImageComponent alloc]
initWithKey:NSDraggingImageComponentIconKey];
+ NSRect rect = [imageView frame];
+ NSImage *dragImage = [[NSImage alloc] initWithSize:rect.size];
+ [dragImage addRepresentation:[imageView
bitmapImageRepCachingDisplayInRect:[imageView bounds]]];
+ [component setContents:dragImage];
+ [component setFrame:rect];
+ return component;
+}
+
- (void)mouseDown:(NSEvent *)theEvent {
if ([NSApp willDragMouse]) {
@@ -428,13 +438,27 @@
if (item) {
- NSRect rect = [imageView frame];
- NSBitmapImageRep *imageRep = [imageView
bitmapImageRepCachingDisplayInRect:[imageView bounds]];
- NSImage *dragImage = [[NSImage alloc] initWithSize:rect.size];
- [dragImage addRepresentation:imageRep];
+ NSDraggingItem *dragItem = [[NSDraggingItem alloc]
initWithPasteboardWriter:item];
- NSDraggingItem *dragItem = [[NSDraggingItem alloc]
initWithPasteboardWriter:item];
- [dragItem setDraggingFrame:rect contents:dragImage];
+ [dragItem setDraggingFrame:[self bounds]];
+ if (selectionIndexes == nil) {
+ [dragItem setImageComponentsProvider:^{
+ return @[[self draggingImageComponent]];
+ }];
+ } else {
+ [dragItem setImageComponentsProvider:^{
+ NSMutableArray *components = [NSMutableArray array];
+ NSCollectionView *collectionView = [[self controller]
collectionView];
+ [selectionIndexes enumerateIndexesUsingBlock:^(NSUInteger
idx, BOOL *stop){
+ SKThumbnailView *view = (SKThumbnailView
*)[[collectionView itemAtIndexPath:[NSIndexPath indexPathForItem:idx
inSection:0]] view];
+ NSDraggingImageComponent *component = [view
draggingImageComponent];
+ [component setFrame:[self convertRect:[component
frame] fromView:view]];
+ [components addObject:component];
+ }];
+ return components;
+ }];
+ }
+
[self beginDraggingSessionWithItems:@[dragItem] event:theEvent
source:self];
}
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