diff options
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 892afda..49b631d 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -856,6 +856,7 @@ void BScreen::keyPressEvent(XKeyEvent &ke) { | |||
856 | if (Fluxbox::instance()->keys()->doAction(ke.type, ke.state, ke.keycode, | 856 | if (Fluxbox::instance()->keys()->doAction(ke.type, ke.state, ke.keycode, |
857 | Keys::GLOBAL|Keys::ON_DESKTOP)) | 857 | Keys::GLOBAL|Keys::ON_DESKTOP)) |
858 | // re-grab keyboard, so we don't pass KeyRelease to clients | 858 | // re-grab keyboard, so we don't pass KeyRelease to clients |
859 | // also for catching invalid keys in the middle of keychains | ||
859 | FbTk::EventManager::instance()->grabKeyboard(rootWindow().window()); | 860 | FbTk::EventManager::instance()->grabKeyboard(rootWindow().window()); |
860 | 861 | ||
861 | } | 862 | } |
@@ -871,8 +872,8 @@ void BScreen::keyReleaseEvent(XKeyEvent &ke) { | |||
871 | m_cycling = false; | 872 | m_cycling = false; |
872 | focusControl().stopCyclingFocus(); | 873 | focusControl().stopCyclingFocus(); |
873 | } | 874 | } |
874 | 875 | if (!Fluxbox::instance()->keys()->inKeychain()) | |
875 | FbTk::EventManager::instance()->ungrabKeyboard(); | 876 | FbTk::EventManager::instance()->ungrabKeyboard(); |
876 | } | 877 | } |
877 | 878 | ||
878 | void BScreen::buttonPressEvent(XButtonEvent &be) { | 879 | void BScreen::buttonPressEvent(XButtonEvent &be) { |