aboutsummaryrefslogtreecommitdiff
path: root/src/fluxbox.cc
diff options
context:
space:
mode:
authormarkt <markt>2006-12-19 18:08:33 (GMT)
committermarkt <markt>2006-12-19 18:08:33 (GMT)
commit144091995610ea1b562e96d5e55c99659034bd55 (patch)
treed51a51b509c8f4fe1260584c76d40b83fc4a9d66 /src/fluxbox.cc
parent83b9e392933ca882ff89140a9a7f93df8df512e6 (diff)
downloadfluxbox_pavel-144091995610ea1b562e96d5e55c99659034bd55.zip
fluxbox_pavel-144091995610ea1b562e96d5e55c99659034bd55.tar.bz2
Change to data structure for keybindings, ungrab and grab keys when switching
keymodes instead of deciding whether we need it and repeating the key.
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r--src/fluxbox.cc13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 8a810a4..9fe22f7 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -1119,16 +1119,11 @@ void Fluxbox::handleKeyEvent(XKeyEvent &ke) {
1119 case KeyPress: 1119 case KeyPress:
1120 // see if we need to keep watching for key releases 1120 // see if we need to keep watching for key releases
1121 m_watching_screen = 0; 1121 m_watching_screen = 0;
1122 if (m_key->doAction(ke)) { 1122 if (!m_key->doAction(ke)) // could still be cycling
1123 XAllowEvents(FbTk::App::instance()->display(), AsyncKeyboard, CurrentTime);
1124 // if we've done some action other than cycling focus
1125 if (old_watching_screen && m_watching_screen != old_watching_screen)
1126 old_watching_screen->notifyReleasedKeys(ke);
1127 } else {
1128 XAllowEvents(FbTk::App::instance()->display(), ReplayKeyboard, CurrentTime);
1129 // could still be cycling
1130 m_watching_screen = old_watching_screen; 1123 m_watching_screen = old_watching_screen;
1131 } 1124 else if (old_watching_screen &&
1125 m_watching_screen != old_watching_screen)
1126 old_watching_screen->notifyReleasedKeys(ke);
1132 break; 1127 break;
1133 case KeyRelease: { 1128 case KeyRelease: {
1134 // we ignore most key releases unless we need to use 1129 // we ignore most key releases unless we need to use