commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8889 - trunk/gnue-forms/src/uidrivers/gtk2/widgets/form


From: reinhard
Subject: [gnue] r8889 - trunk/gnue-forms/src/uidrivers/gtk2/widgets/form
Date: Sat, 21 Oct 2006 07:33:24 -0500 (CDT)

Author: reinhard
Date: 2006-10-21 07:33:23 -0500 (Sat, 21 Oct 2006)
New Revision: 8889

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
Log:
Fixed double focus movement when pressing the Tab key in gtk2. This resulted in
showing error messages twice when tabbing out of an entry with invalid content.


Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py  2006-10-20 
17:43:34 UTC (rev 8888)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py  2006-10-21 
12:33:23 UTC (rev 8889)
@@ -124,7 +124,8 @@
       self.containerFrame.show ()
       self.content_table.show ()
 
-    self.mainWindow.connect ('delete_event', self.windowExitEvent)
+    self.mainWindow.connect ('move_focus', self.__on_move_focus)
+    self.mainWindow.connect ('delete_event', self.__on_delete_event)
     self.accelGroup = gtk.AccelGroup ()
     self.mainWindow.add_accel_group (self.accelGroup)
 
@@ -235,16 +236,25 @@
     
 
   # ---------------------------------------------------------------------------
-  # Catch the exit event from the menu and request exit
+  # Event handlers
   # ---------------------------------------------------------------------------
 
-  def windowExitEvent (self, widget, event):
+  def __on_move_focus(self, window, direction):
 
-    self._uiDriver.dispatchEvent ('requestEXIT', _form = self._form)
+        # This event is generated to move the focus in the form by pressing tab
+        # or cursor keys. We handle the focus ourselves, so we don't want the
+        # window to do this.
+        window.emit_stop_by_name('move_focus')
 
-    return True
+  # ---------------------------------------------------------------------------
 
+  def __on_delete_event(self, widget, event):
 
+        # catch the form close event
+        self._uiDriver.dispatchEvent('requestEXIT', _form = self._form)
+        return True
+
+
   # ---------------------------------------------------------------------------
   # Set the forms title
   # ---------------------------------------------------------------------------





reply via email to

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