billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=5e70628daedd001a98200abc3da556e9e1bfda04
commit 5e70628daedd001a98200abc3da556e9e1bfda04 Author: Jason L. Cook <jason.lewis.c...@gmail.com> Date: Fri Apr 11 20:20:47 2014 +0200 Added config directive for Active Links, defaulting to true Summary: Added element ot config struct to support toggling of Active Links Added boolean to support Active Links config directive Added configuration directive for Active Links Return from appropriate functions if Active Links is disabled Test Plan: Reviewers Reviewers: billiob, raster CC: billiob, raster Differential Revision: https://phab.enlightenment.org/D689 --- src/bin/config.c | 5 +++++ src/bin/config.h | 1 + src/bin/main.c | 1 + src/bin/options_behavior.c | 19 +++++++++++++++++++ src/bin/termio.c | 4 ++++ 5 files changed, 30 insertions(+) diff --git a/src/bin/config.c b/src/bin/config.c index 8c1036e..03e43e9 100644 --- a/src/bin/config.c +++ b/src/bin/config.c @@ -97,6 +97,8 @@ config_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC (edd_base, Config, "disable_visual_bell", disable_visual_bell, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC + (edd_base, Config, "active_links", active_links, EET_T_UCHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC (edd_base, Config, "translucent", translucent, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC (edd_base, Config, "mute", mute, EET_T_UCHAR); @@ -210,6 +212,7 @@ config_sync(const Config *config_src, Config *config) config->flicker_on_key = config_src->flicker_on_key; config->disable_cursor_blink = config_src->disable_cursor_blink; config->disable_visual_bell = config_src->disable_visual_bell; + config->active_links = config_src->active_links; config->mute = config_src->mute; config->urg_bell = config_src->urg_bell; config->multi_instance = config_src->multi_instance; @@ -499,6 +502,7 @@ config_load(const char *key) config->flicker_on_key = EINA_FALSE; config->disable_cursor_blink = EINA_FALSE; config->disable_visual_bell = EINA_FALSE; + config->active_links = EINA_TRUE; s = eina_unicode_unicode_to_utf8(sep, &slen); if (s) { @@ -579,6 +583,7 @@ config_fork(Config *config) CPY(flicker_on_key); CPY(disable_cursor_blink); CPY(disable_visual_bell); + CPY(active_links); CPY(translucent); CPY(mute); CPY(urg_bell); diff --git a/src/bin/config.h b/src/bin/config.h index ee5dca8..027e0e4 100644 --- a/src/bin/config.h +++ b/src/bin/config.h @@ -42,6 +42,7 @@ struct _Config Eina_Bool flicker_on_key; Eina_Bool disable_cursor_blink; Eina_Bool disable_visual_bell; + Eina_Bool active_links; Eina_Bool translucent; Eina_Bool mute; Eina_Bool urg_bell; diff --git a/src/bin/main.c b/src/bin/main.c index 787f907..4cda584 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -2652,6 +2652,7 @@ elm_main(int argc, char **argv) Eina_Bool video_mute = 0xff; /* unset */ Eina_Bool cursor_blink = 0xff; /* unset */ Eina_Bool visual_bell = 0xff; /* unset */ + Eina_Bool active_links = 0xff; /* unset */ Eina_Bool fullscreen = EINA_FALSE; Eina_Bool iconic = EINA_FALSE; Eina_Bool borderless = EINA_FALSE; diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c index 17115fe..03f753f 100644 --- a/src/bin/options_behavior.c +++ b/src/bin/options_behavior.c @@ -77,6 +77,15 @@ _cb_op_behavior_urg_bell_chg(void *data, Evas_Object *obj, void *event EINA_UNUS } static void +_cb_op_behavior_active_links_chg(void *data, Evas_Object *obj, void *event EINA_UNUSED) +{ + Evas_Object *term = data; + Config *config = termio_config_get(term); + config->active_links = elm_check_state_get(obj); + config_save(config, NULL); +} + +static void _cb_op_behavior_multi_instance_chg(void *data, Evas_Object *obj, void *event EINA_UNUSED) { Evas_Object *term = data; @@ -363,6 +372,16 @@ options_behavior(Evas_Object *opbox, Evas_Object *term) o = elm_check_add(bx); 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, "Active Links"); + elm_check_state_set(o, config->active_links); + elm_box_pack_end(bx, o); + evas_object_show(o); + evas_object_smart_callback_add(o, "changed", + _cb_op_behavior_active_links_chg, term); + + o = elm_check_add(bx); + 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, "Enable application server"); elm_check_state_set(o, config->application_server); elm_box_pack_end(bx, o); diff --git a/src/bin/termio.c b/src/bin/termio.c index c10a115..e8b8ef0 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -147,6 +147,7 @@ _activate_link(Evas_Object *obj, Eina_Bool may_inline) EINA_SAFETY_ON_NULL_RETURN(sd); if (!config) return; + if (!config->active_links) return; if (!sd->link.string) return; if (link_is_url(sd->link.string)) { @@ -666,8 +667,11 @@ _smart_mouseover_apply(Evas_Object *obj) int x1 = 0, y1 = 0, x2 = 0, y2 = 0; Eina_Bool same_link = EINA_FALSE, same_geom = EINA_FALSE; Termio *sd = evas_object_smart_data_get(obj); + Config *config = termio_config_get(obj); EINA_SAFETY_ON_NULL_RETURN(sd); + if (!config->active_links) return; + if ((sd->mouse.cx < 0) || (sd->mouse.cy < 0) || (sd->link.suspend) || (!evas_object_focus_get(obj))) { --