[vlc-devel] [PATCH 2/2] macosx: renderer: keep selected item

Thomas Guillem thomas at gllm.fr
Tue Feb 6 16:34:09 CET 2018


Don't remove the selected item when the discoverer is closed (and don't stop
the CC session).
---
 modules/gui/macosx/VLCRendererMenuController.m | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/modules/gui/macosx/VLCRendererMenuController.m b/modules/gui/macosx/VLCRendererMenuController.m
index 411a5b9125..16514122f6 100644
--- a/modules/gui/macosx/VLCRendererMenuController.m
+++ b/modules/gui/macosx/VLCRendererMenuController.m
@@ -96,6 +96,17 @@
 
 - (void)addRendererItem:(VLCRendererItem *)item
 {
+    // Check if the item is already selected
+    if (_selectedItem.representedObject != nil)
+    {
+        VLCRendererItem *selected_rd_item = _selectedItem.representedObject;
+        if ([selected_rd_item.identifier isEqualToString:item.identifier])
+        {
+            [_selectedItem setRepresentedObject:item];
+            return;
+        }
+    }
+
     // Create a menu item
     NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:item.name
                                                       action:@selector(selectRenderer:)
@@ -110,10 +121,9 @@
     NSInteger index = [_rendererMenu indexOfItemWithRepresentedObject:item];
     if (index != NSNotFound) {
         NSMenuItem *menuItem = [_rendererMenu itemAtIndex:index];
-        if (menuItem == _selectedItem) {
-            [self selectRenderer:_rendererNoneItem];
-        }
-        [_rendererMenu removeItemAtIndex:index];
+        // Don't remove selected item
+        if (menuItem != _selectedItem)
+            [_rendererMenu removeItemAtIndex:index];
     }
 }
 
-- 
2.11.0



More information about the vlc-devel mailing list