Make sure that clicked item is always included in selection

This commit is contained in:
DarkPhoenix
2019-04-24 16:01:02 +03:00
parent ccc2e6ece3
commit 2d1613d8bc

View File

@@ -338,9 +338,9 @@ class ContextMenuSelection(ContextMenu, metaclass=ABCMeta):
return self.activate(fullContext, selection, i)
def __getSelection(self, selection, mainItem):
if len(selection) > 0:
return selection
return (mainItem,)
if mainItem is not None and mainItem not in selection:
selection.append(mainItem)
return selection
class ContextMenuCombined(ContextMenu, metaclass=ABCMeta):
@@ -367,19 +367,29 @@ class ContextMenuCombined(ContextMenu, metaclass=ABCMeta):
return
def _baseDisplay(self, context, mainItem, selection):
selection = self.__getSelection(selection, mainItem)
return self.display(context, mainItem, selection)
def _baseGetBitmap(self, context, mainItem, selection):
selection = self.__getSelection(selection, mainItem)
return self.getBitmap(context, mainItem, selection)
def _baseGetText(self, context, mainItem, selection):
selection = self.__getSelection(selection, mainItem)
return self.getText(context, mainItem, selection)
def _baseGetSubMenu(self, context, mainItem, selection, rootMenu, i, pitem):
selection = self.__getSelection(selection, mainItem)
return self.getSubMenu(context, mainItem, selection, rootMenu, i, pitem)
def _baseActivate(self, fullContext, mainItem, selection, i):
selection = self.__getSelection(selection, mainItem)
return self.activate(fullContext, mainItem, selection, i)
def __getSelection(self, selection, mainItem):
if mainItem is not None and mainItem not in selection:
selection.append(mainItem)
return selection
import gui.builtinContextMenus