Jelajahi Sumber

wxGUI: fix full screen on Windows by using accelerator table

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@61267 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 10 tahun lalu
induk
melakukan
5ce84bdbb9
1 mengubah file dengan 10 tambahan dan 6 penghapusan
  1. 10 6
      gui/wxpython/gui_core/mapdisp.py

+ 10 - 6
gui/wxpython/gui_core/mapdisp.py

@@ -101,7 +101,11 @@ class MapFrameBase(wx.Frame):
         self._toolSwitcher = ToolSwitcher()
         self._toolSwitcher.toggleToolChanged.connect(self._onToggleTool)
 
-        self.Bind(wx.EVT_KEY_UP, self.OnFullScreen)
+        # set accelerator table for fullscreen
+        fullScreenId = wx.NewId()
+        self.Bind(wx.EVT_MENU, self.OnFullScreen, id=fullScreenId)
+        accelTable = wx.AcceleratorTable([(wx.ACCEL_NORMAL, wx.WXK_F11, fullScreenId)])
+        self.SetAcceleratorTable(accelTable)
 
     def _initMap(self, Map):
         """Initialize map display, set dimensions and map region
@@ -127,11 +131,11 @@ class MapFrameBase(wx.Frame):
         self.StatusbarUpdate()
 
     def OnFullScreen(self, event):
-        if event.GetKeyCode() == wx.WXK_F11:
-            for toolbar in self.toolbars.keys():
-                self._mgr.GetPane(self.toolbars[toolbar]).Show(self.IsFullScreen())
-            self._mgr.Update()
-            self.ShowFullScreen(not self.IsFullScreen())
+        """!Switch fullscreen mode, hides also toolbars"""
+        for toolbar in self.toolbars.keys():
+            self._mgr.GetPane(self.toolbars[toolbar]).Show(self.IsFullScreen())
+        self._mgr.Update()
+        self.ShowFullScreen(not self.IsFullScreen())
         event.Skip()
 
     def GetToolSwitcher(self):