Bläddra i källkod

wxGUI/vnet: fix adding points because of unregistered handler (author: turek) https://trac.osgeo.org/grass/changeset/66434 merged from trunk, revert https://trac.osgeo.org/grass/changeset/66578 in releasebranch

git-svn-id: https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0@67305 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 9 år sedan
förälder
incheckning
d702ff0fae
3 ändrade filer med 12 tillägg och 18 borttagningar
  1. 7 5
      gui/wxpython/gui_core/mapdisp.py
  2. 5 1
      gui/wxpython/gui_core/toolbars.py
  3. 0 12
      gui/wxpython/vnet/toolbars.py

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

@@ -119,8 +119,9 @@ class MapFrameBase(wx.Frame):
         Map.region = Map.GetRegion() # g.region -upgc
         # self.Map.SetRegion() # adjust region to match display window
 
-    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"""
@@ -482,9 +483,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
 

+ 0 - 12
gui/wxpython/vnet/toolbars.py

@@ -89,18 +89,6 @@ class PointListToolbar(BaseToolbar):
         pt_id = self.vnet_pts_mgr.GetSelected()
         self.vnet_pts_mgr.DeletePoint(pt_id)
 
-    def OnTool(self, event):
-        """Tool selected - overriden BaseToolbar method to avoid calling UnregisterAllHandlers 
-            through toggleToolChanged signal for certain buttons in the toolbar
-            It is temporary HACK before r66434 will be backported.
-        """
-        id = event.GetId()
-        if self.toolSwitcher:
-            
-            if  self.toolSwitcher.IsToolInGroup(id, 'mouseUse'):
-                self.toolSwitcher.ToolChanged(event.GetId())
-        
-        event.Skip()
 
 class MainToolbar(BaseToolbar):
     """Main toolbar