From bc0282d50d5e5610313178df4e208a465ff6d67e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 20 Jun 2012 08:29:08 +0000 Subject: [PATCH] add an option to disable cursor strobe light from typing: strobe effect enabled by default SVN revision: 72527 --- src/bin/config.c | 3 +++ src/bin/config.h | 1 + src/bin/options_behavior.c | 20 ++++++++++++++++++++ src/bin/termio.c | 3 ++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/bin/config.c b/src/bin/config.c index 0f1dfc0e..bee12d42 100644 --- a/src/bin/config.c +++ b/src/bin/config.c @@ -56,6 +56,8 @@ config_init(void) (edd_base, Config, "background", background, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC (edd_base, Config, "jump_on_change", jump_on_change, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "flicker_on_key", flicker_on_key, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC (edd_base, Config, "translucent", translucent, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC @@ -136,6 +138,7 @@ config_load(const char *key) config->background = NULL; config->translucent = EINA_FALSE; config->jump_on_change = EINA_FALSE; + config->flicker_on_key = EINA_TRUE; config->wordsep = eina_stringshare_add(" '\"()[]{}=*!#$^\\:;,?`"); config->vidmod = 0; config->mute = EINA_FALSE; diff --git a/src/bin/config.h b/src/bin/config.h index 111cf8f1..e2763d1f 100644 --- a/src/bin/config.h +++ b/src/bin/config.h @@ -18,6 +18,7 @@ struct _Config int scrollback; int vidmod; Eina_Bool jump_on_change; + Eina_Bool flicker_on_key; Eina_Bool translucent; Eina_Bool mute; Eina_Bool temporary; /* not in EET */ diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c index 6d805dca..4fb5c002 100644 --- a/src/bin/options_behavior.c +++ b/src/bin/options_behavior.c @@ -19,6 +19,16 @@ _cb_op_behavior_jump_chg(void *data, Evas_Object *obj, void *event __UNUSED__) config_save(config, NULL); } +static void +_cb_op_behavior_flicker_chg(void *data, Evas_Object *obj, void *event __UNUSED__) +{ + Evas_Object *term = data; + Config *config = termio_config_get(term); + config->flicker_on_key = elm_check_state_get(obj); + termio_config_update(term); + config_save(config, NULL); +} + static void _cb_op_behavior_wsep_chg(void *data, Evas_Object *obj, void *event __UNUSED__) { @@ -68,6 +78,16 @@ options_behavior(Evas_Object *opbox, Evas_Object *term) evas_object_show(o); evas_object_smart_callback_add(o, "changed", _cb_op_behavior_jump_chg, term); + + o = elm_check_add(opbox); + evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Flicker on key stroke"); + elm_check_state_set(o, config->flicker_on_key); + elm_box_pack_end(opbox, o); + evas_object_show(o); + evas_object_smart_callback_add(o, "changed", + _cb_op_behavior_flicker_chg, term); o = elm_separator_add(opbox); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); diff --git a/src/bin/termio.c b/src/bin/termio.c index 84bca26c..f2acbcd8 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -453,7 +453,8 @@ _smart_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, } keyin_handle(sd->pty, ev); end: - edje_object_signal_emit(sd->cur.obj, "key,down", "terminology"); + if (sd->config->flicker_on_key) + edje_object_signal_emit(sd->cur.obj, "key,down", "terminology"); } static void