瀏覽代碼

wxGUI: fix CoordinatesSelect - register handler (patch provided by Stepan Turek)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52259 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 13 年之前
父節點
當前提交
7fec7312d3
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      gui/wxpython/gui_core/gselect.py

+ 6 - 3
gui/wxpython/gui_core/gselect.py

@@ -1935,7 +1935,7 @@ class CoordinatesSelect(wx.Panel):
         self.buttonInsCoords = buttons.ThemedGenBitmapToggleButton(parent = self, id = wx.ID_ANY,
         self.buttonInsCoords = buttons.ThemedGenBitmapToggleButton(parent = self, id = wx.ID_ANY,
                                                                    bitmap = icon,
                                                                    bitmap = icon,
                                                                    size = globalvar.DIALOG_COLOR_SIZE)
                                                                    size = globalvar.DIALOG_COLOR_SIZE)
-        
+        self.registered = False
         self.buttonInsCoords.Bind(wx.EVT_BUTTON, self._onClick)
         self.buttonInsCoords.Bind(wx.EVT_BUTTON, self._onClick)
         self._doLayout()
         self._doLayout()
         
         
@@ -1957,11 +1957,13 @@ class CoordinatesSelect(wx.Panel):
                 self.buttonInsCoords.SetToggle(False)
                 self.buttonInsCoords.SetToggle(False)
                 return
                 return
             
             
+            self.registered = True
             self.lmgr.GetLayerTree().GetMapDisplay().Raise()
             self.lmgr.GetLayerTree().GetMapDisplay().Raise()
         else:
         else:
             if self.mapWin and \
             if self.mapWin and \
                     self.mapWin.UnregisterMouseEventHandler(wx.EVT_LEFT_DOWN,  
                     self.mapWin.UnregisterMouseEventHandler(wx.EVT_LEFT_DOWN,  
                                                             self._onMapClickHandler):
                                                             self._onMapClickHandler):
+                    self.registered = False
                     return
                     return
             
             
             self.buttonInsCoords.SetToggle(False)           
             self.buttonInsCoords.SetToggle(False)           
@@ -1969,7 +1971,8 @@ class CoordinatesSelect(wx.Panel):
     def _onMapClickHandler(self, event):
     def _onMapClickHandler(self, event):
         """!Gets coordinates from mapwindow"""
         """!Gets coordinates from mapwindow"""
         if event == "unregistered":
         if event == "unregistered":
-            self.buttonInsCoords.SetToggle(False)
+            if self.buttonInsCoords:
+                self.buttonInsCoords.SetToggle(False)
             return
             return
         
         
         e, n = self.mapWin.GetLastEN()
         e, n = self.mapWin.GetLastEN()
@@ -1985,7 +1988,7 @@ class CoordinatesSelect(wx.Panel):
         
         
     def __del__(self):
     def __del__(self):
         """!Unregistrates _onMapClickHandler from mapWin"""
         """!Unregistrates _onMapClickHandler from mapWin"""
-        if self.mapWin:
+        if self.mapWin and self.registered:
             self.mapWin.UnregisterMouseEventHandler(wx.EVT_LEFT_DOWN,  
             self.mapWin.UnregisterMouseEventHandler(wx.EVT_LEFT_DOWN,  
                                                     self._onMapClickHandler)
                                                     self._onMapClickHandler)