diff -aur kupfer-v202/kupfer/ui/browser.py kupfer-v202.copy/kupfer/ui/browser.py --- kupfer-v202/kupfer/ui/browser.py 2010-09-05 07:01:25.000000000 -0700 +++ kupfer-v202.copy/kupfer/ui/browser.py 2010-11-02 14:35:50.000000000 -0700 @@ -852,7 +852,7 @@ keys = ( "Up", "Down", "Right", "Left", "Tab", "ISO_Left_Tab", "BackSpace", "Escape", "Delete", - "space", 'Page_Up', 'Page_Down', 'Home' + "space", 'Page_Up', 'Page_Down', 'Home', 'Return' ) self.key_book = dict((k, gtk.gdk.keyval_from_name(k)) for k in keys) if not text_direction_is_ltr(): @@ -972,6 +972,11 @@ if keyv not in self.keys_sensible: + # skip the IME if we're not in text mode + if not text_mode: + if keyv < 128: + self.entry.insert_text(chr(keyv), -1) + return True # exit if not handled return False self._reset_to_toplevel = False @@ -999,6 +1004,9 @@ elif keyv == key_book["BackSpace"]: if not has_input: self._backspace_key_press() + elif not text_mode: + #forward backspace presses to the entry box + self.entry.delete_text(self.entry.get_text_length() - 1, -1) else: return False elif keyv == key_book["Left"]: @@ -1008,6 +1016,11 @@ self.switch_current(reverse=(keyv == key_book["ISO_Left_Tab"])) elif keyv == key_book['Home']: self.current.go_first() + elif keyv == key_book['Return']: + if has_input and not text_mode: + self.activate() + else: + return False else: # cont. processing return False