summaryrefslogtreecommitdiff
path: root/openbox/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/keyboard.c')
-rw-r--r--openbox/keyboard.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/openbox/keyboard.c b/openbox/keyboard.c
index 0d234857..5f7531e3 100644
--- a/openbox/keyboard.c
+++ b/openbox/keyboard.c
@@ -17,7 +17,6 @@
See the COPYING file for a copy of the GNU General Public License.
*/
-#include "mainloop.h"
#include "focus.h"
#include "screen.h"
#include "frame.h"
@@ -26,7 +25,6 @@
#include "grab.h"
#include "client.h"
#include "actions.h"
-#include "prop.h"
#include "menuframe.h"
#include "config.h"
#include "keytree.h"
@@ -46,20 +44,20 @@ static void grab_keys(gboolean grab)
{
KeyBindingTree *p;
- ungrab_all_keys(RootWindow(ob_display, ob_screen));
+ ungrab_all_keys(obt_root(ob_screen));
if (grab) {
p = curpos ? curpos->first_child : keyboard_firstnode;
while (p) {
if (p->key)
- grab_key(p->key, p->state, RootWindow(ob_display, ob_screen),
+ grab_key(p->key, p->state, obt_root(ob_screen),
GrabModeAsync);
p = p->next_sibling;
}
if (curpos)
grab_key(config_keyboard_reset_keycode,
config_keyboard_reset_state,
- RootWindow(ob_display, ob_screen), GrabModeAsync);
+ obt_root(ob_screen), GrabModeAsync);
}
}
@@ -206,13 +204,14 @@ gboolean keyboard_process_interactive_grab(const XEvent *e, ObClient **client)
}
#endif
-void keyboard_event(ObClient *client, const XEvent *e)
+gboolean keyboard_event(ObClient *client, const XEvent *e)
{
KeyBindingTree *p;
+ gboolean used;
if (e->type == KeyRelease) {
grab_key_passive_count(-1);
- return;
+ return FALSE;
}
g_assert(e->type == KeyPress);
@@ -221,11 +220,12 @@ void keyboard_event(ObClient *client, const XEvent *e)
if (e->xkey.keycode == config_keyboard_reset_keycode &&
e->xkey.state == config_keyboard_reset_state)
{
- ob_main_loop_timeout_remove(ob_main_loop, chain_timeout);
+ obt_main_loop_timeout_remove(ob_main_loop, chain_timeout);
keyboard_reset_chains(-1);
- return;
+ return TRUE;
}
+ used = FALSE;
if (curpos == NULL)
p = keyboard_firstnode;
else
@@ -239,11 +239,11 @@ void keyboard_event(ObClient *client, const XEvent *e)
menu_frame_hide_all();
if (p->first_child != NULL) { /* part of a chain */
- ob_main_loop_timeout_remove(ob_main_loop, chain_timeout);
+ obt_main_loop_timeout_remove(ob_main_loop, chain_timeout);
/* 3 second timeout for chains */
- ob_main_loop_timeout_add(ob_main_loop, 3 * G_USEC_PER_SEC,
- chain_timeout, NULL,
- g_direct_equal, NULL);
+ obt_main_loop_timeout_add(ob_main_loop, 3 * G_USEC_PER_SEC,
+ chain_timeout, NULL,
+ g_direct_equal, NULL);
set_curpos(p);
} else if (p->chroot) /* an empty chroot */
set_curpos(p);
@@ -260,9 +260,11 @@ void keyboard_event(ObClient *client, const XEvent *e)
0, OB_FRAME_CONTEXT_NONE, client);
}
break;
+ used = TRUE;
}
p = p->next_sibling;
}
+ return used;
}
static void node_rebind(KeyBindingTree *node)
@@ -316,7 +318,7 @@ void keyboard_startup(gboolean reconfig)
void keyboard_shutdown(gboolean reconfig)
{
- ob_main_loop_timeout_remove(ob_main_loop, chain_timeout);
+ obt_main_loop_timeout_remove(ob_main_loop, chain_timeout);
keyboard_unbind_all();
set_curpos(NULL);