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.
This commit is contained in:
bendikro 2014-01-21 02:54:36 +01:00
parent a2fcaa15c9
commit a47b1a28f4

View file

@ -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)