瀏覽代碼

wxGUI: close query dialog properly

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@54996 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 12 年之前
父節點
當前提交
00fdf3e1cc
共有 2 個文件被更改,包括 12 次插入1 次删除
  1. 7 1
      gui/wxpython/gui_core/query.py
  2. 5 0
      gui/wxpython/mapdisp/frame.py

+ 7 - 1
gui/wxpython/gui_core/query.py

@@ -43,9 +43,10 @@ class QueryDialog(wx.Dialog):
             self._load()
 
         close = wx.Button(self.panel, id = wx.ID_CLOSE)
-        close.Bind(wx.EVT_BUTTON, lambda evt: self.Destroy())
+        close.Bind(wx.EVT_BUTTON, lambda event: self.Close())
         copy = wx.Button(self.panel, id = wx.ID_ANY, label = _("Copy to clipboard"))
         copy.Bind(wx.EVT_BUTTON, self.Copy)
+        self.Bind(wx.EVT_CLOSE, self.OnClose)
 
         hbox = wx.BoxSizer(wx.HORIZONTAL)
         hbox.AddStretchSpacer(1)
@@ -114,6 +115,11 @@ class QueryDialog(wx.Dialog):
             wx.TheClipboard.SetData(do)
             wx.TheClipboard.Close()
 
+    def OnClose(self, event):
+        self.Destroy()
+        event.Skip()
+
+
 def test():
     app = wx.PySimpleApp()
     import pprint

+ 5 - 0
gui/wxpython/mapdisp/frame.py

@@ -735,8 +735,13 @@ class MapFrame(SingleMapFrame):
             self.dialogs['query'].SetData(result)
         else:
             self.dialogs['query'] = QueryDialog(parent = self, data = result)
+            self.dialogs['query'].Bind(wx.EVT_CLOSE, self._oncloseQueryDialog)
             self.dialogs['query'].Show()
 
+    def _oncloseQueryDialog(self, event):
+        self.dialogs['query'] = None
+        event.Skip()
+
     def _queryHighlight(self, vectQuery):
         """!Highlight category from query."""
         cats = name = None