diff options
author | Simon Effenberg <savar@schuldeigen.de> | 2015-01-12 11:32:32 +0100 |
---|---|---|
committer | Simon Effenberg <savar@schuldeigen.de> | 2015-01-12 11:32:32 +0100 |
commit | 34148e21012289b8ebf4ba5a3e2aa8b65051fd55 (patch) | |
tree | e87d91c61d711d5d5f9652a9e60aa01a8e905bc8 /src/ui | |
parent | c7ff3255b8bd4bed2f825255a4fe28940db533b2 (diff) | |
download | profani-tty-34148e21012289b8ebf4ba5a3e2aa8b65051fd55.tar.gz |
adding preference option for dynamic input blocking
/inpblock is now having subcommands 'timeout' and 'dynamic' with: /inpblock timeout <milliseconds> and /inpblock dynamic <on|off> Defaults are: /inpblock timeout 500 /inpblock dynamic on To get the old behavior specify: /inpblock timeout 20 /inpblock dynamic off The dynamic mode will block incrementally after something should be written to the window or after a key was pressed. So pressing a key would set the timeout to 0ms and after 10 timeouts to the next bigger one. Example (with dynamic mode on): "/inpblock timeout 50" timeout series: 10x 0ms 10x 10ms (0ms + 10 times since last keypress) 10x 30ms (10ms + 20 times since last keypress) *x50ms until next key was pressed or
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/console.c | 7 | ||||
-rw-r--r-- | src/ui/core.c | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/ui/console.c b/src/ui/console.c index d219a175..69abafef 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -1182,7 +1182,12 @@ cons_show_chat_prefs(void) void cons_inpblock_setting(void) { - cons_show("Input block (/inpblock) : %d milliseconds", prefs_get_inpblock()); + cons_show("Input timeout (/inpblock) : %d milliseconds", prefs_get_inpblock()); + if (prefs_get_boolean(PREF_INPBLOCK_DYNAMIC)) { + cons_show("Input dynamic (/inpblock) : ON"); + } else { + cons_show("Input dynamic (/inpblock) : OFF"); + } } void diff --git a/src/ui/core.c b/src/ui/core.c index 3b53b4ed..20db2010 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -206,6 +206,11 @@ ui_input_nonblocking(gboolean reset) static gint timeout = 0; static gint no_input_count = 0; + if (! prefs_get_boolean(PREF_INPBLOCK_DYNAMIC)) { + inp_non_block(prefs_get_inpblock()); + return; + } + if (reset) { timeout = 0; no_input_count = 0; |