diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index e050d853a..da2bf2daa 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -69,10 +69,7 @@ class BoosterView(d.Display): self.SetDropTarget(BoosterViewDrop(self.handleListDrag)) - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) def handleListDrag(self, x, y, data): """ @@ -163,12 +160,7 @@ class BoosterView(d.Display): fitID = self.mainFrame.getActiveFit() self.mainFrame.command.Submit(cmd.GuiToggleBoosterCommand(fitID, row)) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): sel = self.GetFirstSelected() if sel != -1: sFit = Fit.getInstance() diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index 29721603c..cc6958f5d 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -64,10 +64,7 @@ class CargoView(d.Display): self.SetDropTarget(CargoViewDrop(self.handleListDrag)) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) def handleListDrag(self, x, y, data): """ @@ -180,12 +177,7 @@ class CargoView(d.Display): sFit.removeCargo(fitID, self.original.index(cargo)) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self,event): sel = self.GetFirstSelected() if sel != -1: sFit = Fit.getInstance() diff --git a/gui/builtinAdditionPanes/commandView.py b/gui/builtinAdditionPanes/commandView.py index ce73e06b8..9b1fb1d0c 100644 --- a/gui/builtinAdditionPanes/commandView.py +++ b/gui/builtinAdditionPanes/commandView.py @@ -72,16 +72,12 @@ class CommandView(d.Display): self.mainFrame.Bind(EVT_FIT_REMOVED, CommandFits.populateFits) self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) self.Bind(wx.EVT_LEFT_DOWN, self.click) - self.Bind(wx.EVT_RIGHT_DOWN, self.click) self.Bind(wx.EVT_LEFT_DCLICK, self.remove) self.Bind(wx.EVT_KEY_UP, self.kbEvent) self.droneView = gui.builtinAdditionPanes.droneView.DroneView - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_RIGHT_UP, self.spawnMenu) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) self.SetDropTarget(CommandViewDrop(self.handleListDrag)) @@ -188,12 +184,7 @@ class CommandView(d.Display): fitID = self.mainFrame.getActiveFit() self.mainFrame.command.Submit(cmd.GuiToggleCommandCommand(fitID, item.ID)) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): fitID = self.mainFrame.getActiveFit() if fitID is None: return diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index 9da438953..fe509f0b3 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -78,10 +78,7 @@ class DroneView(Display): self.Bind(wx.EVT_MOTION, self.OnMouseMove) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) self.SetDropTarget(DroneViewDrop(self.handleDragDrop)) @@ -242,12 +239,7 @@ class DroneView(Display): drone = self.drones[row] self.mainFrame.command.Submit(cmd.GuiToggleDroneCommand(fitID, self.original.index(drone))) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): sel = self.GetFirstSelected() if sel != -1: drone = self.drones[sel] diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index f9025851b..5be649ac9 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -142,10 +142,7 @@ class FighterDisplay(d.Display): self.Bind(wx.EVT_MOTION, self.OnMouseMove) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) self.SetDropTarget(FighterViewDrop(self.handleDragDrop)) @@ -289,12 +286,7 @@ class FighterDisplay(d.Display): fighter = self.fighters[row] self.mainFrame.command.Submit(cmd.GuiToggleFighterCommand(fitID, self.original.index(fighter))) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): sel = self.GetFirstSelected() if sel != -1: fighter = self.fighters[sel] diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index 84c437ea3..b28a3b6c5 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -118,11 +118,8 @@ class ImplantDisplay(d.Display): self.Bind(wx.EVT_KEY_UP, self.kbEvent) self.SetDropTarget(ImplantViewDrop(self.handleListDrag)) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) def handleListDrag(self, x, y, data): """ @@ -223,12 +220,7 @@ class ImplantDisplay(d.Display): fitID = self.mainFrame.getActiveFit() self.mainFrame.command.Submit(cmd.GuiToggleImplantCommand(fitID, row)) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): sel = self.GetFirstSelected() menu = None diff --git a/gui/builtinAdditionPanes/projectedView.py b/gui/builtinAdditionPanes/projectedView.py index 59d046761..1457fcb37 100644 --- a/gui/builtinAdditionPanes/projectedView.py +++ b/gui/builtinAdditionPanes/projectedView.py @@ -78,16 +78,12 @@ class ProjectedView(d.Display): self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) self.Bind(wx.EVT_LEFT_DOWN, self.click) - self.Bind(wx.EVT_RIGHT_DOWN, self.click) self.Bind(wx.EVT_LEFT_DCLICK, self.remove) self.Bind(wx.EVT_KEY_UP, self.kbEvent) self.droneView = gui.builtinAdditionPanes.droneView.DroneView - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) self.SetDropTarget(ProjectedViewDrop(self.handleListDrag)) @@ -271,12 +267,7 @@ class ProjectedView(d.Display): sFit.toggleProjected(fitID, item, "right" if event.Button == 3 else "left") wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): fitID = self.mainFrame.getActiveFit() if fitID is None: return diff --git a/gui/builtinItemStatsViews/itemAffectedBy.py b/gui/builtinItemStatsViews/itemAffectedBy.py index 94808b734..cd25df1a9 100644 --- a/gui/builtinItemStatsViews/itemAffectedBy.py +++ b/gui/builtinItemStatsViews/itemAffectedBy.py @@ -65,13 +65,10 @@ class ItemAffectedBy(wx.Panel): self.SetSizer(mainSizer) self.PopulateTree() self.Layout() - self.affectedBy.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.scheduleMenu) + self.affectedBy.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) - def scheduleMenu(self, event): - event.Skip() - wx.CallAfter(self.spawnMenu, event.Item) - - def spawnMenu(self, item): + def spawnMenu(self, event): + item, _ = self.affectedBy.HitTest(self.ScreenToClient(event.Position)) self.affectedBy.SelectItem(item) stuff = self.affectedBy.GetItemData(item) diff --git a/gui/builtinStatsViews/miningyieldViewFull.py b/gui/builtinStatsViews/miningyieldViewFull.py index 7793a2850..104a9ad2b 100644 --- a/gui/builtinStatsViews/miningyieldViewFull.py +++ b/gui/builtinStatsViews/miningyieldViewFull.py @@ -123,7 +123,6 @@ class MiningYieldViewFull(StatsView): # Get the TogglePanel tp = self.panel.GetParent() # Bind the new panel's children to allow context menu access - self.parent.applyBinding(self.parent, tp.content_panel) tp.SetLabel(view.getHeaderText(fit)) view.refreshPanel(fit) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 9801f4af0..f60159daf 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -153,10 +153,7 @@ class FittingView(d.Display): self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag) - if "__WXGTK__" in wx.PlatformInfo: - self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) self.SetDropTarget(FittingViewDrop(self.handleListDrag)) self.activeFitID = None @@ -168,7 +165,6 @@ class FittingView(d.Display): self.Bind(wx.EVT_KEY_UP, self.kbEvent) self.Bind(wx.EVT_LEFT_DOWN, self.click) - self.Bind(wx.EVT_RIGHT_DOWN, self.click) self.Bind(wx.EVT_MIDDLE_DOWN, self.click) self.Bind(wx.EVT_SHOW, self.OnShow) self.Bind(wx.EVT_MOTION, self.OnMouseMove) @@ -535,12 +531,7 @@ class FittingView(d.Display): finally: event.Skip() - def scheduleMenu(self, event): - event.Skip() - if self.getColumn(event.Position) != self.getColIndex(State): - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): if self.activeFitID is None: return diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 60dbcd3e5..14934910f 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -373,7 +373,7 @@ class SkillTreeView(wx.Panel): tree.Bind(wx.dataview.EVT_TREELIST_ITEM_ACTIVATED, self.expand) tree.Bind(wx.dataview.EVT_TREELIST_ITEM_EXPANDING, self.expandLookup) - tree.Bind(wx.dataview.EVT_TREELIST_ITEM_CONTEXT_MENU, self.scheduleMenu) + tree.Bind(wx.dataview.EVT_TREELIST_ITEM_CONTEXT_MENU, self.spawnMenu) bSizerButtons = wx.BoxSizer(wx.HORIZONTAL) @@ -590,11 +590,8 @@ class SkillTreeView(wx.Panel): tree.SetItemText(childId, 1, "Level %d" % int(level) if isinstance(level, float) else level) - def scheduleMenu(self, event): - event.Skip() - wx.CallAfter(self.spawnMenu, event.GetItem()) - - def spawnMenu(self, item): + def spawnMenu(self, event): + item = event.GetItem() self.skillTreeListCtrl.Select(item) thing = self.skillTreeListCtrl.GetFirstChild(item).IsOk() if thing: @@ -677,10 +674,7 @@ class ImplantEditorView(BaseImplantEditorView): self.determineEnabled() charEditor.Bind(GE.CHAR_CHANGED, self.contextChanged) - if "__WXGTK__" in wx.PlatformInfo: - self.pluggedImplantsTree.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu) - else: - self.pluggedImplantsTree.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu) + self.pluggedImplantsTree.Bind(wx.EVT_CONTEXT_MENU, self.spawnMenu) def bindContext(self): self.Parent.Parent.entityEditor.Bind(wx.EVT_CHOICE, self.contextChanged) @@ -707,11 +701,7 @@ class ImplantEditorView(BaseImplantEditorView): sChar.removeImplant(char.ID, implant) - def scheduleMenu(self, event): - event.Skip() - wx.CallAfter(self.spawnMenu) - - def spawnMenu(self): + def spawnMenu(self, event): context = (("implantEditor",),) # fuck good coding practices, passing a pointer to the character editor here for [reasons] =D # (see implantSets context class for info) diff --git a/gui/statsPane.py b/gui/statsPane.py index b3984ccfa..ec13c5ff8 100644 --- a/gui/statsPane.py +++ b/gui/statsPane.py @@ -114,9 +114,7 @@ class StatsPane(wx.Panel): tp.SetLabel(view.getHeaderText(None)) view.refreshPanel(None) - contentPanel.Bind(wx.EVT_RIGHT_DOWN, self.contextHandler(contentPanel)) - for child in contentPanel.GetChildren(): - child.Bind(wx.EVT_RIGHT_DOWN, self.contextHandler(contentPanel)) + contentPanel.Bind(wx.EVT_CONTEXT_MENU, self.contextHandler(contentPanel)) mainSizer.Add(tp, 0, wx.EXPAND | wx.LEFT, 3) if i < maxviews - 1: @@ -143,9 +141,3 @@ class StatsPane(wx.Panel): event.Skip() return handler - - @staticmethod - def applyBinding(self, contentPanel): - pyfalog.debug("Attempt applyBinding to children of {0}", contentPanel.viewName) - for child in contentPanel.GetChildren(): - child.Bind(wx.EVT_RIGHT_DOWN, self.contextHandler(contentPanel))