commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9151 - trunk/gnue-forms/src/input/displayHandlers


From: reinhard
Subject: [gnue] r9151 - trunk/gnue-forms/src/input/displayHandlers
Date: Tue, 12 Dec 2006 12:05:34 -0600 (CST)

Author: reinhard
Date: 2006-12-12 12:05:33 -0600 (Tue, 12 Dec 2006)
New Revision: 9151

Modified:
   trunk/gnue-forms/src/input/displayHandlers/Cursor.py
Log:
Fixes for selection in dropdowns.


Modified: trunk/gnue-forms/src/input/displayHandlers/Cursor.py
===================================================================
--- trunk/gnue-forms/src/input/displayHandlers/Cursor.py        2006-12-12 
17:57:40 UTC (rev 9150)
+++ trunk/gnue-forms/src/input/displayHandlers/Cursor.py        2006-12-12 
18:05:33 UTC (rev 9151)
@@ -126,9 +126,6 @@
     self.entry.uiWidget._ui_set_cursor_position_(index, cursor)
 
     selection = self.getSelectionArea()
-    if selection is None and hasattr(self.field, 'fk_source'):
-        selection = (cursor, len(self.display))
-
     if selection is not None:
       selection1, selection2 = selection
       self.entry.uiWidget._ui_set_selected_area_(index, selection1, selection2)
@@ -249,19 +246,25 @@
 
       new_cursor = self._cursor + len(value)
 
-    # If text was added at the end, do autocompletion.
-    if new_cursor == len(new_value) and len(new_value) > len(self.work):
-        new_value = self.field.autocomplete(new_value)
-
     # Check if max length isn't exceeded.
     if self.field.length is not None and len(new_value) > self.field.length:
         self.__beep()
         event.refreshDisplay = True
         return
 
+    # If text was added at the end, do autocompletion.
+    if new_cursor == len(new_value) and len(new_value) > len(self.work):
+        new_value = self.field.autocomplete(new_value)
+        if len(new_value) > new_cursor:
+            new_selection = (new_cursor, len(new_value))
+        else:
+            new_selection = (None, None)
+    else:
+        new_selection = (None, None)
+
     self.work = new_value
     self._cursor = new_cursor
-    self._selection1 = None
+    self._selection1, self._selection2 = new_selection
     self.modified = True
     self.display = self.build_display(self.work, True)
     event.refreshDisplay = True





reply via email to

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