208
208
self.setup_toolbar(chooser, search, button)
210
210
search.grab_focus()
211
self.keys_pressed = []
212
213
def setup_headerbar(self, chooser, search, button):
213
214
headerbar = Gtk.HeaderBar.new()
262
263
self.window_is_fullscreen = bool(event.new_window_state &
263
264
Gdk.WindowState.FULLSCREEN)
266
def get_keys_from_event(self, event):
268
keys.append(Gdk.keyval_name(event.keyval))
269
if event.get_state() & Gdk.ModifierType.CONTROL_MASK:
270
keys.append("Control")
271
if event.get_state() & Gdk.ModifierType.SHIFT_MASK:
273
if event.get_state() & Gdk.ModifierType.SUPER_MASK:
275
if event.get_state() & Gdk.ModifierType.MOD1_MASK:
279
def add_keys(self, keys):
282
if key not in self.keys_pressed and key not in ignore:
283
self.keys_pressed.append(key)
285
def remove_keys(self, keys):
287
if key in self.keys_pressed:
288
self.keys_pressed.remove(key)
265
290
def on_catfish_window_key_press_event(self, widget, event):
266
291
"""Handle keypresses for the Catfish window."""
267
key_name = Gdk.keyval_name(event.keyval)
268
if key_name == "Escape":
292
keys = self.get_keys_from_event(event)
269
296
self.search_engine.stop()
271
if event.get_state() & Gdk.ModifierType.CONTROL_MASK:
272
if key_name == 'q' or key_name == 'Q':
298
if "Control" in keys and ("q" in keys or "Q" in keys):
275
301
self.on_sidebar_toggle_toggled(widget)
277
if key_name == 'F11':
278
304
if self.window_is_fullscreen:
279
305
self.unfullscreen()
281
307
self.fullscreen()
311
def on_catfish_window_key_release_event(self, widget, event):
312
"""Handle key releases for the Catfish window."""
313
keys = self.get_keys_from_event(event)
314
self.remove_keys(keys)