provide a way to remove all bindings
This commit is contained in:
parent
ebe3091560
commit
bdc10887cb
4 changed files with 18 additions and 11 deletions
|
@ -98,6 +98,14 @@ void keyboard_reset_chains()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void keyboard_unbind_all()
|
||||||
|
{
|
||||||
|
tree_destroy(keyboard_firstnode);
|
||||||
|
keyboard_firstnode = NULL;
|
||||||
|
grab_keys(FALSE);
|
||||||
|
curpos = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean keyboard_bind(GList *keylist, ObAction *action)
|
gboolean keyboard_bind(GList *keylist, ObAction *action)
|
||||||
{
|
{
|
||||||
KeyBindingTree *tree, *t;
|
KeyBindingTree *tree, *t;
|
||||||
|
@ -297,16 +305,13 @@ void keyboard_shutdown(gboolean reconfig)
|
||||||
if (!reconfig)
|
if (!reconfig)
|
||||||
client_remove_destructor(keyboard_interactive_end_client);
|
client_remove_destructor(keyboard_interactive_end_client);
|
||||||
|
|
||||||
tree_destroy(keyboard_firstnode);
|
|
||||||
keyboard_firstnode = NULL;
|
|
||||||
|
|
||||||
for (it = interactive_states; it; it = g_slist_next(it))
|
for (it = interactive_states; it; it = g_slist_next(it))
|
||||||
g_free(it->data);
|
g_free(it->data);
|
||||||
g_slist_free(interactive_states);
|
g_slist_free(interactive_states);
|
||||||
interactive_states = NULL;
|
interactive_states = NULL;
|
||||||
|
|
||||||
ob_main_loop_timeout_remove(ob_main_loop, chain_timeout);
|
ob_main_loop_timeout_remove(ob_main_loop, chain_timeout);
|
||||||
grab_keys(FALSE);
|
|
||||||
curpos = NULL;
|
keyboard_unbind_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@ void keyboard_startup(gboolean reconfig);
|
||||||
void keyboard_shutdown(gboolean reconfig);
|
void keyboard_shutdown(gboolean reconfig);
|
||||||
|
|
||||||
gboolean keyboard_bind(GList *keylist, ObAction *action);
|
gboolean keyboard_bind(GList *keylist, ObAction *action);
|
||||||
|
void keyboard_unbind_all();
|
||||||
|
|
||||||
void keyboard_event(struct _ObClient *client, const XEvent *e);
|
void keyboard_event(struct _ObClient *client, const XEvent *e);
|
||||||
void keyboard_reset_chains();
|
void keyboard_reset_chains();
|
||||||
|
|
|
@ -128,7 +128,7 @@ static void grab_all_clients(gboolean grab)
|
||||||
mouse_grab_for_client(it->data, grab);
|
mouse_grab_for_client(it->data, grab);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clearall()
|
void mouse_unbind_all()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
GSList *it;
|
GSList *it;
|
||||||
|
@ -295,8 +295,8 @@ void mouse_event(ObClient *client, XEvent *e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean mouse_bind(char *buttonstr, char *contextstr, ObMouseAction mact,
|
gboolean mouse_bind(const gchar *buttonstr, const gchar *contextstr,
|
||||||
ObAction *action)
|
ObMouseAction mact, ObAction *action)
|
||||||
{
|
{
|
||||||
guint state, button;
|
guint state, button;
|
||||||
ObFrameContext context;
|
ObFrameContext context;
|
||||||
|
@ -347,5 +347,5 @@ void mouse_startup(gboolean reconfig)
|
||||||
void mouse_shutdown(gboolean reconfig)
|
void mouse_shutdown(gboolean reconfig)
|
||||||
{
|
{
|
||||||
grab_all_clients(FALSE);
|
grab_all_clients(FALSE);
|
||||||
clearall();
|
mouse_unbind_all();
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,8 +28,9 @@
|
||||||
void mouse_startup(gboolean reconfig);
|
void mouse_startup(gboolean reconfig);
|
||||||
void mouse_shutdown(gboolean reconfig);
|
void mouse_shutdown(gboolean reconfig);
|
||||||
|
|
||||||
gboolean mouse_bind(char *buttonstr, char *contextstr, ObMouseAction mact,
|
gboolean mouse_bind(const gchar *buttonstr, const gchar *contextstr,
|
||||||
ObAction *action);
|
ObMouseAction mact, ObAction *action);
|
||||||
|
void mouse_unbind_all();
|
||||||
|
|
||||||
void mouse_event(struct _ObClient *client, XEvent *e);
|
void mouse_event(struct _ObClient *client, XEvent *e);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue