浏览代码

wxGUI/vnet: fix adding points because of unregistered handler (author: turek)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@66434 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 9 年之前
父节点
当前提交
4d3581b5bf
共有 2 个文件被更改,包括 12 次插入6 次删除
  1. 7 5
      gui/wxpython/gui_core/mapdisp.py
  2. 5 1
      gui/wxpython/gui_core/toolbars.py

+ 7 - 5
gui/wxpython/gui_core/mapdisp.py

@@ -130,8 +130,9 @@ class MapFrameBase(wx.Frame):
         dh = hf - hw
         self.SetSize((wf + dw, hf + dh))
 
-    def _onToggleTool(self):
-        self.GetWindow().UnregisterAllHandlers()
+    def _onToggleTool(self, id):
+        if self._toolSwitcher.IsToolInGroup(id, 'mouseUse'):
+            self.GetWindow().UnregisterAllHandlers()
 
     def OnSize(self, event):
         """Adjust statusbar on changing size"""
@@ -499,9 +500,10 @@ class DoubleMapFrame(MapFrameBase):
         self.GetFirstWindow().Bind(wx.EVT_ENTER_WINDOW, self.ActivateFirstMap)
         self.GetSecondWindow().Bind(wx.EVT_ENTER_WINDOW, self.ActivateSecondMap)
     
-    def _onToggleTool(self):
-        self.GetFirstWindow().UnregisterAllHandlers()
-        self.GetSecondWindow().UnregisterAllHandlers()
+    def _onToggleTool(self, id): 
+        if self._toolSwitcher.IsToolInGroup(id, 'mouseUse'):
+            self.GetFirstWindow().UnregisterAllHandlers()
+            self.GetSecondWindow().UnregisterAllHandlers()
 
     def GetFirstMap(self):
         """Returns first Map instance

+ 5 - 1
gui/wxpython/gui_core/toolbars.py

@@ -332,7 +332,11 @@ class ToolSwitcher:
         """
         for group in self._toolsGroups[tool]:
             for tb in self._groups[group]:
-                if tb.FindById(tool):
+                if tb == 'custom':
+                    for bid, handler in self._groups[group][tb]:
+                        if tool == bid:
+                            return True
+                elif tb.FindById(tool):
                     return True
         return False