summaryrefslogtreecommitdiff
path: root/portato/gui/gtk/windows.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-03-04 13:39:40 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-03-04 13:39:40 +0100
commite56f12cbaa9c0d8e88696ce2e32b76dd525fdb6d (patch)
treef9f18c4d7f7324fb55d7aa265eb7549139aef705 /portato/gui/gtk/windows.py
parentb1ea53aac10d36b2716d9c8de0dbc4edbac98fa1 (diff)
downloadportato-e56f12cbaa9c0d8e88696ce2e32b76dd525fdb6d.tar.gz
portato-e56f12cbaa9c0d8e88696ce2e32b76dd525fdb6d.tar.bz2
portato-e56f12cbaa9c0d8e88696ce2e32b76dd525fdb6d.zip
Reduced lag in searching
Diffstat (limited to 'portato/gui/gtk/windows.py')
-rw-r--r--portato/gui/gtk/windows.py25
1 files changed, 18 insertions, 7 deletions
diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py
index 02785ed..5b6c621 100644
--- a/portato/gui/gtk/windows.py
+++ b/portato/gui/gtk/windows.py
@@ -948,6 +948,7 @@ class MainWindow (Window):
# booleans
self.doUpdate = False
self.showAll = True # show only installed or all packages?
+ self.__searchChanged = False
# installed pixbuf
self.instPixbuf = self.window.render_icon(gtk.STOCK_YES, gtk.ICON_SIZE_MENU)
@@ -1675,16 +1676,26 @@ class MainWindow (Window):
Called when the user enters something in the search field.
Updates the packages according to the search expression.
"""
- if self.cfg.get_boolean("searchOnType", section="GUI"):
- txt = self.searchEntry.get_text()
+ if not self.__searchChanged and self.cfg.get_boolean("searchOnType", section="GUI"):
+ self.__searchChanged = True
+
+ def __update():
+ self.__searchChanged = False
+ txt = self.searchEntry.get_text()
- if txt or self.db.restrict:
- self.db.restrict = txt
+ if txt or self.db.restrict:
+ self.db.restrict = txt
- self.refresh_stores()
- self.catList.get_selection().select_path("0") # XXX make this smarter
+ self.refresh_stores()
+ self.catList.get_selection().select_path("0") # XXX make this smarter
- return True
+ return False # not again ;)
+
+ gobject.timeout_add(100, __update)
+
+ def cb_delete_search_clicked (self, *args):
+ self.searchEntry.set_text("")
+ return True
def cb_preferences_clicked (self, *args):
"""