X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fkeyboard.c;h=f8872938f0cf1a64ed34925400615bf00c1876bf;hb=4d50b21835d7dd00ecc40efd64c5573d7e048500;hp=11b3a98509a058fa6964384342f123f117b13fbc;hpb=f6ba1f27b9790f56bda1e5831069e2dd7e2c96a2;p=chaz%2Fopenbox diff --git a/openbox/keyboard.c b/openbox/keyboard.c index 11b3a985..f8872938 100644 --- a/openbox/keyboard.c +++ b/openbox/keyboard.c @@ -1,6 +1,7 @@ /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- keyboard.c for the Openbox window manager + Copyright (c) 2006 Mikael Magnusson Copyright (c) 2003 Ben Jansens This program is free software; you can redistribute it and/or modify @@ -119,7 +120,7 @@ gboolean keyboard_bind(GList *keylist, ObAction *action) return FALSE; if ((t = tree_find(tree, &conflict)) != NULL) { - /* already bound to something, use the existing tree */ + /* already bound to something, use the existing tree */ tree_destroy(tree); tree = NULL; } else @@ -155,8 +156,8 @@ gboolean keyboard_bind(GList *keylist, ObAction *action) return TRUE; } -void keyboard_interactive_grab(guint state, ObClient *client, - ObAction *action) +gboolean keyboard_interactive_grab(guint state, ObClient *client, + ObAction *action) { ObInteractiveState *s; @@ -164,10 +165,10 @@ void keyboard_interactive_grab(guint state, ObClient *client, if (!interactive_states) { if (!grab_keyboard(TRUE)) - return; + return FALSE; if (!grab_pointer(TRUE, OB_CURSOR_NONE)) { grab_keyboard(FALSE); - return; + return FALSE; } } @@ -178,6 +179,8 @@ void keyboard_interactive_grab(guint state, ObClient *client, s->actions = g_slist_append(NULL, action); interactive_states = g_slist_append(interactive_states, s); + + return TRUE; } void keyboard_interactive_end(ObInteractiveState *s, @@ -227,9 +230,9 @@ gboolean keyboard_process_interactive_grab(const XEvent *e, ObClient **client) !(s->state & e->xkey.state))) done = TRUE; else if (e->type == KeyPress) { - if (e->xkey.keycode == ob_keycode(OB_KEY_RETURN)) + /*if (e->xkey.keycode == ob_keycode(OB_KEY_RETURN)) done = TRUE; - else if (e->xkey.keycode == ob_keycode(OB_KEY_ESCAPE)) + else */if (e->xkey.keycode == ob_keycode(OB_KEY_ESCAPE)) cancel = done = TRUE; } if (done) { @@ -285,6 +288,11 @@ void keyboard_event(ObClient *client, const XEvent *e) } } +gboolean keyboard_interactively_grabbed() +{ + return !!interactive_states; +} + void keyboard_startup(gboolean reconfig) { grab_keys(TRUE);