all repos — openbox @ 1ee98f4a47e67b653057a62171a0993b80f81f8e

openbox fork - make it a bit more like ryudo

give the chain popup a 1 second delay before it shows
Dana Jansens danakj@orodu.net
commit

1ee98f4a47e67b653057a62171a0993b80f81f8e

parent

df9b2294dbeaedb6ba1af833d0c09f1a294702e9

1 files changed, 16 insertions(+), 13 deletions(-)

jump to
M openbox/keyboard.copenbox/keyboard.c

@@ -69,9 +69,10 @@ RootWindow(ob_display, ob_screen), GrabModeAsync);

} } -static gboolean chain_timeout(gpointer data) +static gboolean popup_show_timeout(gpointer data) { - keyboard_reset_chains(); + gchar *text = data; + popup_show(popup, text); return FALSE; /* don't repeat */ }

@@ -90,16 +91,23 @@ for (it = curpos->keylist; it; it = g_list_next(it))

text = g_strconcat((text ? text : ""), it->data, "-", NULL); popup_position(popup, NorthWestGravity, 10, 10); - popup_show(popup, text); - g_free(text); - } else + if (popup->mapped) { + popup_show_timeout(text); + g_free(text); + } else { + ob_main_loop_timeout_remove(ob_main_loop, popup_show_timeout); + ob_main_loop_timeout_add(ob_main_loop, 1 * G_USEC_PER_SEC, + popup_show_timeout, text, + g_direct_equal, g_free); + } + } else { popup_hide(popup); + ob_main_loop_timeout_remove(ob_main_loop, popup_show_timeout); + } } void keyboard_reset_chains() { - ob_main_loop_timeout_remove(ob_main_loop, chain_timeout); - if (curpos) set_curpos(NULL); }

@@ -272,11 +280,6 @@ if (p->key == e->xkey.keycode &&

p->state == e->xkey.state) { if (p->first_child != NULL) { /* part of a chain */ - ob_main_loop_timeout_remove(ob_main_loop, chain_timeout); - /* 5 second timeout for chains */ - ob_main_loop_timeout_add(ob_main_loop, 5 * G_USEC_PER_SEC, - chain_timeout, NULL, - g_direct_equal, NULL); set_curpos(p); } else {

@@ -318,7 +321,7 @@ g_free(it->data);

g_slist_free(interactive_states); interactive_states = NULL; - ob_main_loop_timeout_remove(ob_main_loop, chain_timeout); + ob_main_loop_timeout_remove(ob_main_loop, popup_show_timeout); keyboard_unbind_all(); set_curpos(NULL);