From b66cfd06eadacb70cd229ed0fcdcbfbf9ba8b326 Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Wed, 6 Oct 2010 11:48:17 +0200 Subject: [PATCH] Make sure we can display context menus when clicks are anywhere on the panel --- gui/statsPane.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/gui/statsPane.py b/gui/statsPane.py index c259a55b0..ded4daedc 100644 --- a/gui/statsPane.py +++ b/gui/statsPane.py @@ -63,15 +63,17 @@ class StatsPane(wx.Panel): view = StatsView.getView(viewName)(self) self.views.append(view) - contentPanel.Bind(wx.EVT_RIGHT_DOWN, self.contextHandler) headerPanel = tp.GetHeaderPanel() view.populatePanel(contentPanel, headerPanel) 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)) + mainSizer.Add(tp, 0, wx.EXPAND | wx.LEFT, 3) if i < maxviews - 1: mainSizer.Add(wx.StaticLine(self, wx.ID_ANY, style=wx.HORIZONTAL), 0, wx.EXPAND | wx.ALL,2) @@ -82,11 +84,13 @@ class StatsPane(wx.Panel): self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.mainFrame.Bind(fv.FIT_CHANGED, self.fitChanged) - def contextHandler(self, event): - contentPanel = event.EventObject + def contextHandler(self, contentPanel): viewName = contentPanel.viewName - menu = ContextMenu.getMenu(None, viewName) - if menu is not None: - contentPanel.PopupMenu(menu) + def handler(event): + menu = ContextMenu.getMenu(None, viewName) + if menu is not None: + contentPanel.PopupMenu(menu) - event.Skip() \ No newline at end of file + event.Skip() + + return handler \ No newline at end of file