Revision: 27768
          http://sourceforge.net/p/bibdesk/svn/27768
Author:   hofman
Date:     2022-07-24 23:23:41 +0000 (Sun, 24 Jul 2022)
Log Message:
-----------
only reload after calling datasource when the controller did not reload as a 
result of changes

Modified Paths:
--------------
    trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h
    trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m

Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h      2022-07-24 
22:57:43 UTC (rev 27767)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h      2022-07-24 
23:23:41 UTC (rev 27768)
@@ -234,6 +234,7 @@
         unsigned int scheduledLiveResize:1;
         unsigned int updatingFromSlider:1;
         unsigned int hasArrows:1;
+        unsigned int needsReload:1;
         unsigned int controllingSharedPreviewer:1;
         unsigned int controllingQLPreviewPanel:1;
     } _fvFlags;

Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2022-07-24 
22:57:43 UTC (rev 27767)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2022-07-24 
23:23:41 UTC (rev 27768)
@@ -415,6 +415,8 @@
     
     _fvFlags.updatingFromSlider = NO;
     
+    _fvFlags.needsReload = NO;
+
     [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(_handleFinderLabelChanged:) 
name:FVFinderLabelDidChangeNotification object:nil];
 }
 
@@ -1919,6 +1921,8 @@
     }
     
     [self _resetViewLayout];
+    
+    _fvFlags.needsReload = NO;
 }
 
 - (void)_handleFinderLabelChanged:(NSNotification *)note {
@@ -2717,9 +2721,12 @@
 {
     // only called if we originated the drag, so the row/column must be valid
     if ((operation & NSDragOperationDelete) != 0 && operation != 
NSDragOperationEvery && [self isEditable]) {
-        [[self dataSource] fileView:self 
deleteURLsAtIndexes:[[_selectionIndexes retain] autorelease]];
-        [self _setSelectionIndexes:[NSIndexSet indexSet]];
-        [self reloadIcons];
+        _fvFlags.needsReload = YES;
+        if ([[self dataSource] fileView:self 
deleteURLsAtIndexes:[[_selectionIndexes retain] autorelease]]) {
+            [self _setSelectionIndexes:[NSIndexSet indexSet]];
+            if (_fvFlags.needsReload)
+                [self reloadIcons];
+        }
     }
 }
 
@@ -2803,9 +2810,12 @@
 {
     // only called if we originated the drag, so the row/column must be valid
     if ((operation & NSDragOperationDelete) != 0 && operation != 
NSDragOperationEvery && [self isEditable]) {
-        [[self dataSource] fileView:self 
deleteURLsAtIndexes:[[_selectionIndexes retain] autorelease]];
-        [self _setSelectionIndexes:[NSIndexSet indexSet]];
-        [self reloadIcons];
+        _fvFlags.needsReload = YES;
+        if ([[self dataSource] fileView:self 
deleteURLsAtIndexes:[[_selectionIndexes retain] autorelease]]) {
+            [self _setSelectionIndexes:[NSIndexSet indexSet]];
+            if (_fvFlags.needsReload)
+                [self reloadIcons];
+        }
     }
 }
 
@@ -2960,7 +2970,8 @@
 {
     _dropIndex = NSNotFound;
     _fvFlags.dropOperation = FVDropBefore;
-    [self setNeedsDisplay:YES];
+    if (_fvFlags.needsReload)
+        [self reloadIcons];
 }
 
 // only invoked if performDragOperation returned YES
@@ -3014,6 +3025,8 @@
             allURLs = [NSArray arrayWithObject:[allURLs objectAtIndex:0]];
     }
     
+    _fvFlags.needsReload = YES;
+    
     if (isCopy) {
         NSMutableArray *copiedURLs = [NSMutableArray array];
         NSEnumerator *urlEnum = [allURLs objectEnumerator];
@@ -3881,9 +3894,10 @@
 
 - (IBAction)delete:(id)sender;
 {
+    _fvFlags.needsReload = YES;
     if (NO == [self isEditable] || NO == [[self dataSource] fileView:self 
deleteURLsAtIndexes:[[_selectionIndexes retain] autorelease]])
         NSBeep();
-    else
+    else if (_fvFlags.needsReload)
         [self reloadIcons];
 }
 

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



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to