commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r8995 - trunk/gnue-forms/src/uidrivers/wx26/widgets


From: johannes
Subject: [gnue] r8995 - trunk/gnue-forms/src/uidrivers/wx26/widgets
Date: Wed, 8 Nov 2006 04:23:04 -0600 (CST)

Author: johannes
Date: 2006-11-08 04:23:03 -0600 (Wed, 08 Nov 2006)
New Revision: 8995

Modified:
   trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
   trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py
Log:
Don't segfault when another tab of a notebook is active on close


Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py        2006-11-08 
09:35:29 UTC (rev 8994)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py        2006-11-08 
10:23:03 UTC (rev 8995)
@@ -112,7 +112,8 @@
             self.__border = self._uiDriver.control_border('default')
 
         ctrl = wx.TextCtrl(parent, -1, size=csize, style=xFlags)
-        ctrl.Bind(wx.EVT_CHAR, self.__on_keypress)
+        ctrl.Bind(wx.EVT_TEXT, self.__on_text_changed)
+        # ctrl.Bind(wx.EVT_CHAR, self.__on_keypress)
         ctrl.Bind(wx.EVT_SET_FOCUS, self.__on_set_focus)
 
         # Currently wxMac does *not* recieve a button release event, so we
@@ -293,6 +294,14 @@
 
     # -------------------------------------------------------------------------
 
+    def __on_text_changed(self, event):
+
+        self._request('REPLACEVALUE', text=event.GetEventObject().GetValue(),
+                position=event.GetEventObject().GetInsertionPoint())
+        event.Skip()
+
+    # -------------------------------------------------------------------------
+
     def __on_keypress(self, event):
 
         if 'wxMac' in wx.PlatformInfo or \

Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py 2006-11-08 09:35:29 UTC 
(rev 8994)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/form.py 2006-11-08 10:23:03 UTC 
(rev 8995)
@@ -294,6 +294,8 @@
             # cleanly.  This workaround is obsolete with wx2.7+
             event.GetEventObject().Show()
             event.GetEventObject().Destroy()
+            # After destroying the window we do not have a main_window anymore
+            self.main_window = None
 
     # -------------------------------------------------------------------------
 
@@ -332,10 +334,11 @@
         """
         # If a trigger closes the form, this is called after the form is
         # closed, which would result in a segfault. So we have to check whether
-        # the form is still visible.
-        if wx.IsBusy() and self.main_window.IsShown():
+        # the form is still available.
+        if self.main_window and wx.IsBusy():
             wx.EndBusyCursor()
 
+
     # -------------------------------------------------------------------------
 
     def _ui_beep_(self):
@@ -580,7 +583,7 @@
 
         # border
         dc.DrawRectangle(
-                int((canvas_w - w) / 2) + page_left, 
+                int((canvas_w - w) / 2) + page_left,
                 int((canvas_h - h) / 2) + canvas_top,
                 w, h)
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]