From 57b617ef256e9aa2c4094d26342a0ff60c30ed26 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Sat, 17 Mar 2007 20:46:44 +0100 Subject: [PATCH] Don't grab the keyboard on press and only react to presses (temporary until trial1). --- shell/view/frame/frame.py | 11 +++++++++++ shell/view/keyhandler.py | 10 ++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py index aa152ef5..aedc56dc 100644 --- a/shell/view/frame/frame.py +++ b/shell/view/frame/frame.py @@ -92,6 +92,13 @@ class _KeyListener(object): self._frame.mode != MODE_KEYBOARD: return + if self._frame.visible: + self._frame.hide() + else: + self._frame.show() + self._frame.mode = MODE_KEYBOARD + + """ if self._state == _KeyListener._HIDDEN: self._frame.show() self._frame.mode = MODE_KEYBOARD @@ -101,13 +108,17 @@ class _KeyListener(object): elif self._state == _KeyListener._SHOWN_RELEASED: self._frame.hide() self._state = _KeyListener._HIDDEN + """ def key_release(self): + pass + """ if self._state == _KeyListener._SHOWN_PRESSED: self._state = _KeyListener._SHOWN_RELEASED elif self._state == _KeyListener._SHOWN_REPEAT: self._frame.hide() self._state = _KeyListener._HIDDEN + """ class Frame(object): def __init__(self, shell): diff --git a/shell/view/keyhandler.py b/shell/view/keyhandler.py index 645f5d64..18dee296 100644 --- a/shell/view/keyhandler.py +++ b/shell/view/keyhandler.py @@ -173,12 +173,18 @@ class KeyHandler(object): def _key_pressed_cb(self, grabber, keycode, state): key = grabber.get_key(keycode, state) + logging.debug('_key_pressed_cb: %i %i %s' % (keycode, state, key)) if key: self._key_pressed = key self._keycode_pressed = keycode self._keystate_pressed = state - gtk.gdk.keyboard_grab(gtk.gdk.get_default_root_window(), - owner_events=False, time=0L) + + """ + status = gtk.gdk.keyboard_grab(gtk.gdk.get_default_root_window(), + owner_events=False, time=0L) + if status != gtk.gdk.GRAB_SUCCESS: + logging.error("KeyHandler._key_pressed_cb(): keyboard grab failed: " + status) + """ action = _actions_table[key] method = getattr(self, 'handle_' + action)