From a47b1a28f49ee65791823954009a3aa04ae1d24e Mon Sep 17 00:00:00 2001 From: bendikro Date: Tue, 21 Jan 2014 02:54:36 +0100 Subject: [PATCH] Fixed small bug in path_combo_chooser The delete-text event was triggered when setting the text in the text entry. The completion popup was then displayed when it shouldn't. Fixed by blocking the signal while setting the text. --- deluge/ui/gtkui/path_combo_chooser.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/deluge/ui/gtkui/path_combo_chooser.py b/deluge/ui/gtkui/path_combo_chooser.py index 91ba93141..d92dd9c97 100755 --- a/deluge/ui/gtkui/path_combo_chooser.py +++ b/deluge/ui/gtkui/path_combo_chooser.py @@ -540,7 +540,6 @@ class PathChooserPopup(object): # Entry is not yet visible if not (self.path_entry.flags() & gtk.REALIZED): return - #if not self.is_popped_up(): self.set_window_position_and_size() def popdown(self): @@ -937,8 +936,8 @@ class PathAutoCompleter(object): self.signal_handlers["on_completion_popup_window_key_press_event"] = \ self.on_completion_popup_window_key_press_event - self.signal_handlers["on_entry_text_delete_text"] = \ - self.on_entry_text_delete_text + # We must set the signal handler here to get the handler ID. + self.text_entry_delete_handler_id = self.path_entry.text_entry.connect("delete-text", self.on_entry_text_delete_text) self.signal_handlers["on_entry_text_insert_text"] = \ self.on_entry_text_insert_text self.accelerator_string = gtk.accelerator_name(keysyms.Tab, 0) @@ -1098,7 +1097,11 @@ class PathChooserComboBox(gtk.HBox, StoredValuesPopup, gobject.GObject): """ old_text = self.text_entry.get_text() + # We must block the "delete-text" signal to avoid the signal handler being called + self.text_entry.handler_block(self.auto_completer.text_entry_delete_handler_id) self.text_entry.set_text(text) + self.text_entry.handler_unblock(self.auto_completer.text_entry_delete_handler_id) + self.text_entry.select_region(0, 0) self.text_entry.set_position(len(text) if cursor_end else 0) self.set_selected_value(text, select_first=True)