--- /home/kikidonk/503191.txt 2006-01-13 00:37:35.000000000 +0100 +++ pearl.py 2006-01-13 00:36:39.000000000 +0100 @@ -362,9 +362,10 @@ self.connect ("cursor-changed", self.__on_cursor_changed) self.set_property ("headers-visible", False) - self.set_property ("hover-selection", True) - self.connect ("button-press-event", self.__on_click) - + self.set_property ("hover-selection", False) + self.connect ("button-press-event", self.__on_click) + self.connect ('key-press-event', self.__on_button) + self.get_selection().set_mode(gtk.SELECTION_BROWSE) self.set_enable_search (False) self.set_reorderable(True) # FIXME: Make it so that categories *only* can be reordered by dragging @@ -449,7 +450,32 @@ model, iter = self.get_selection().get_selected() match = model[iter][model.MATCHES] self.emit ("match-selected", match) - + + def __on_button (self, w, event): + print 'button press:', event.keyval + if event.keyval == 65362: + model, iter = self.get_selection().get_selected() + print model.get_string_from_iter(iter) + print model.get_string_from_iter(model.get_iter_first()) + + if model.get_string_from_iter(model.get_iter_first()) == model.get_string_from_iter(iter): + print 'Focus the entry', entry + gobject.timeout_add(1, entry.grab_focus) + self.get_selection().unselect_all() + return True +# Maybe filter special keys, and forward all the rest to the entry again, and take focus. This code +#seems to conflict with the P. toggle button.. +# if event.keyval != 65364 and \ +# event.keyval != 65362 and \ +# event.keyval != 43 and \ +# event.keyval != 45 and \ +# event.keyval != 65293: # Down, Up, +, -, Enter +# entry.emit('key-press-event', event) +# gobject.timeout_add(1, entry.grab_focus) +# self.get_selection().unselect_all() +# return True + return False + class CuemiacWindow (gtk.Window): """ Borderless window aligning itself to a given widget. @@ -591,8 +617,8 @@ def pass_event (self, event): pos = self.entry.get_position () cview.grab_focus () - cview.event (event) - gobject.timeout_add(self.refocus_timeout, self.__restore_entry_focus, pos) + #cview.event (event) + #gobject.timeout_add(self.refocus_timeout, self.__restore_entry_focus, pos) def __restore_entry_focus (self, position): self.entry.grab_focus ()