[gnome-tweak-tool] Automatically search when unhandled keyboard input is detected
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tweak-tool] Automatically search when unhandled keyboard input is detected
- Date: Mon, 16 Feb 2015 12:56:54 +0000 (UTC)
commit a3069bd02e21dfdabca7a8f56122f53b49f77d96
Author: Isaac Lenton <isaac isuniversal com>
Date: Wed Jan 28 02:37:37 2015 +1000
Automatically search when unhandled keyboard input is detected
https://bugzilla.gnome.org/show_bug.cgi?id=741804
gtweak/tweakview.py | 30 +++++++++++++++++++++++++++---
1 files changed, 27 insertions(+), 3 deletions(-)
---
diff --git a/gtweak/tweakview.py b/gtweak/tweakview.py
index 0a724d1..3d1ffdf 100644
--- a/gtweak/tweakview.py
+++ b/gtweak/tweakview.py
@@ -59,6 +59,7 @@ class Window(Gtk.ApplicationWindow):
self._update_decorations);
self.connect("key-press-event", self._on_key_press)
+ self.connect_after("key-press-event", self._after_key_press)
self.add(main_box)
def titlebar(self):
@@ -196,13 +197,36 @@ class Window(Gtk.ApplicationWindow):
self._right_header.props.decoration_layout = ":" + tokens[1]
self._left_header.props.decoration_layout = tokens[0]
+ def _after_key_press(self, widget, event):
+ if not self.button.get_active() or not self.entry.is_focus():
+ if self.entry.im_context_filter_keypress(event):
+ self.button.set_active(True)
+ self.entry.grab_focus ()
+
+ # Text in entry is selected, deselect it
+ l = self.entry.get_text_length()
+ self.entry.select_region(l, l)
+
+ return True
+
+ return False
+
def _on_key_press(self, widget, event):
keyname = Gdk.keyval_name(event.keyval)
- if keyname == 'Escape':
- self.button.set_active(False)
- if event.state and Gdk.ModifierType.CONTROL_MASK:
+
+ if keyname == 'Escape' and self.button.get_active():
+ if self.entry.is_focus():
+ self.button.set_active(False)
+ else:
+ self.entry.grab_focus()
+ return True
+
+ if event.state & Gdk.ModifierType.CONTROL_MASK:
if keyname == 'f':
self.button.set_active(True)
+ return True
+
+ return False
def _on_list_changed(self, group):
self.listbox.set_filter_func(self._list_filter_func, group)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]