commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r7681 - trunk/gnue-forms/src


From: reinhard
Subject: [gnue] r7681 - trunk/gnue-forms/src
Date: Mon, 4 Jul 2005 17:01:58 -0500 (CDT)

Author: reinhard
Date: 2005-07-04 17:01:54 -0500 (Mon, 04 Jul 2005)
New Revision: 7681

Modified:
   trunk/gnue-forms/src/GFForm.py
   trunk/gnue-forms/src/GFInstance.py
Log:
Changed findAndChangeFocus to also set focus on UI layer. This fixes a few
cases where the UI focus gets out of sync with the GF focus, especially after
exceptions.


Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py      2005-07-04 20:30:02 UTC (rev 7680)
+++ trunk/gnue-forms/src/GFForm.py      2005-07-04 22:01:54 UTC (rev 7681)
@@ -253,13 +253,22 @@
   #---------------------------------------------------------------------------
   def findAndChangeFocus(self, object):
     """
-    Find focus and change it to new entry.
-    @param: object
-    @return: None
+    Change the focus to the first focusable element of the given object.
+
+    The object passed can be a page or a block (in which case the first entry
+    on that page/block will be focused) or an entry (in which case exactly this
+    entry will be focused).
+
+    The focus will be set on GF and on UI layer.
+
+    @param: Object from the GF layer
     """
     entry = self.findFocus(object)
     if entry:
+      # Set focus on GF layer
       self.changeFocus(entry)
+      # Set focus on UI layer
+      self.dispatchEvent('gotoENTRY', object=entry, _form=self)
 
 
   #---------------------------------------------------------------------------

Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py  2005-07-04 20:30:02 UTC (rev 7680)
+++ trunk/gnue-forms/src/GFInstance.py  2005-07-04 22:01:54 UTC (rev 7681)
@@ -622,8 +622,6 @@
       return
 
     event._form.nextBlock ()
-    self.dispatchEvent ('gotoENTRY', object = event._form._currentEntry,
-                        _form = event._form)
     self.updateStatus (event._form)
 
 
@@ -641,8 +639,6 @@
       return
 
     event._form.previousBlock ()
-    self.dispatchEvent ('gotoENTRY', object = event._form._currentEntry,
-                        _form = event._form)
     self.updateStatus (event._form)
 
 
@@ -665,8 +661,6 @@
       nextIndex = currentIndex + 1
 
     event._form.findAndChangeFocus (event._form._layout._pageList [nextIndex])
-    self.dispatchEvent ('gotoENTRY', object = event._form._currentEntry,
-                        _form = event._form)
     self.updateStatus (event._form)
 
 
@@ -685,9 +679,6 @@
     pageList = event._form._layout._pageList
     currentIndex = pageList.index (event._form._currentPage)
     event._form.findAndChangeFocus (pageList [currentIndex - 1])
-
-    self.dispatchEvent ('gotoENTRY', object = event._form._currentEntry,
-                        _form = event._form)
     self.updateStatus (event._form)
 
   # ---------------------------------------------------------------------------
@@ -704,9 +695,6 @@
 
     newpage = event._form._layout._pageList [event.data]
     event._form.findAndChangeFocus (newpage)
-    
-    self.dispatchEvent ('gotoENTRY', object = event._form._currentEntry,
-                       _form = event._form)
     self.updateStatus (event._form)
 
 





reply via email to

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