vlc/vlc-3.0 | branch: master | David Fuhrmann <[email protected]> | Wed 
Aug  8 23:02:31 2018 +0200| [d3ea392e08a9773a5251b0d96fef6c3a99ce8cf7] | 
committer: David Fuhrmann

macosx: Fix model rebuilding after drop operation

The old code does not take into account the index shifts if
dragging an item down the list.
Easy fix is to reload the whole model for now.

(cherry picked from commit 7cb147a34148621551e89cdfe0448244f34252b6)
Signed-off-by: David Fuhrmann <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=d3ea392e08a9773a5251b0d96fef6c3a99ce8cf7
---

 modules/gui/macosx/VLCPLModel.m | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/modules/gui/macosx/VLCPLModel.m b/modules/gui/macosx/VLCPLModel.m
index 2ca2fae823..5ea1d46603 100644
--- a/modules/gui/macosx/VLCPLModel.m
+++ b/modules/gui/macosx/VLCPLModel.m
@@ -705,14 +705,19 @@ static int VolumeUpdated(vlc_object_t *p_this, const char 
*psz_var,
         PL_UNLOCK;
         free(pp_items);
 
+        // FIXME: Fix below code to avoid rebuilding the whole model
         // rebuild our model
-        NSUInteger filteredItemsCount = [o_filteredItems count];
-        for(NSUInteger i = 0; i < filteredItemsCount; ++i) {
-            VLCPLItem *o_item = [o_filteredItems objectAtIndex:i];
-            NSLog(@"delete child from parent %p", [o_item parent]);
-            [[o_item parent] deleteChild:o_item];
-            [targetItem addChild:o_item atPos:index + i];
-        }
+//        NSUInteger filteredItemsCount = [o_filteredItems count];
+//        for(int i = 0; i < filteredItemsCount; ++i) {
+//            VLCPLItem *o_item = [o_filteredItems objectAtIndex:i];
+//            NSLog(@"delete child from parent %p", [o_item parent]);
+//            [[o_item parent] deleteChild:o_item];
+//            [targetItem addChild:o_item atPos:(int)index + i];
+//        }
+
+        PL_LOCK;
+        [self rebuildVLCPLItem:_rootItem];
+        PL_UNLOCK;
 
         [_outlineView reloadData];
 

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to