#include "keyboard.h"
#include "mouse.h"
#include "prop.h"
+#include "translate.h"
#include "parser/parse.h"
gboolean config_focus_new;
gboolean config_dock_hide;
guint config_dock_hide_timeout;
+guint config_keyboard_reset_keycode;
+guint config_keyboard_reset_state;
+
gint config_mouse_threshold;
gint config_mouse_dclicktime;
xmlNodePtr n, nact;
GList *it;
+ if ((n = parse_find_node("chainQuitKey", node))) {
+ key = parse_string(doc, n);
+ translate_key(key, &config_keyboard_reset_state,
+ &config_keyboard_reset_keycode);
+ }
+
n = parse_find_node("keybind", node);
while (n) {
if (parse_attr_string("key", n, &key)) {
parse_register("dock", parse_dock, NULL);
+ translate_key("C-g", &config_keyboard_reset_state,
+ &config_keyboard_reset_keycode);
+
parse_register("keyboard", parse_keyboard, NULL);
config_mouse_threshold = 3;
/*! Names for the desktops */
extern GSList *config_desktops_names;
+/*! The keycode of the key combo which resets the keybaord chains */
+guint config_keyboard_reset_keycode;
+/*! The modifiers of the key combo which resets the keybaord chains */
+guint config_keyboard_reset_state;
+
/*! Number of pixels a drag must go before being considered a drag */
extern gint config_mouse_threshold;
/*! Number of milliseconds within which 2 clicks must occur to be a
#include "action.h"
#include "prop.h"
#include "timer.h"
+#include "config.h"
#include "keytree.h"
#include "keyboard.h"
#include "translate.h"
grab_key(p->key, p->state, win, GrabModeAsync);
p = p->next_sibling;
}
+ if (curpos)
+ grab_key(config_keyboard_reset_keycode,
+ config_keyboard_reset_state,
+ win, GrabModeAsync);
}
}
g_assert(e->type == KeyPress);
+ if (e->xkey.keycode == config_keyboard_reset_keycode &&
+ e->xkey.state == config_keyboard_reset_state)
+ {
+ keyboard_reset_chains();
+ return;
+ }
+
if (curpos == NULL)
p = keyboard_firstnode;
else