add the chainQuitKey option to teh <keyboard> section of the rc3

This commit is contained in:
Dana Jansens 2003-08-12 18:05:40 +00:00
parent 83705e52c4
commit fdc52e879f
4 changed files with 32 additions and 0 deletions

View file

@ -53,6 +53,8 @@
</dock>
<keyboard>
<chainQuitKey>C-g</chainQuitKey>
<keybind key="A-F10">
<action name="MaximizeFull"></action>
</keybind>

View file

@ -2,6 +2,7 @@
#include "keyboard.h"
#include "mouse.h"
#include "prop.h"
#include "translate.h"
#include "parser/parse.h"
gboolean config_focus_new;
@ -29,6 +30,9 @@ ObOrientation config_dock_orient;
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;
@ -49,6 +53,12 @@ static void parse_key(xmlDocPtr doc, xmlNodePtr node, GList *keylist)
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)) {
@ -343,6 +353,9 @@ void config_startup()
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;

View file

@ -54,6 +54,11 @@ extern int config_desktops_num;
/*! 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

View file

@ -8,6 +8,7 @@
#include "action.h"
#include "prop.h"
#include "timer.h"
#include "config.h"
#include "keytree.h"
#include "keyboard.h"
#include "translate.h"
@ -36,6 +37,10 @@ static void grab_for_window(Window win, gboolean grab)
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);
}
}
@ -179,6 +184,13 @@ void keyboard_event(ObClient *client, const XEvent *e)
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