Make an option to disable tab switch animations.

I bet I'm not the one driven crazy by them. So let's keep the bling by
default, but make it possible to override that.

In this patch I also sugest usage of tooltips on the config knobs.
How do you like it?
This commit is contained in:
Gustavo Lima Chaves 2014-03-11 23:49:40 -03:00
parent d9e076fe88
commit 1d689839c0
4 changed files with 43 additions and 3 deletions

View File

@ -96,6 +96,8 @@ config_init(void)
(edd_base, Config, "disable_cursor_blink", disable_cursor_blink, EET_T_UCHAR);
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, "disable_switch_anim", disable_switch_anim, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "translucent", translucent, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC
@ -207,6 +209,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->disable_switch_anim = config_src->disable_switch_anim;
config->mute = config_src->mute;
config->urg_bell = config_src->urg_bell;
config->multi_instance = config_src->multi_instance;
@ -495,6 +498,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->disable_switch_anim = EINA_FALSE;
s = eina_unicode_unicode_to_utf8(sep, &slen);
if (s)
{
@ -574,6 +578,7 @@ config_fork(Config *config)
CPY(flicker_on_key);
CPY(disable_cursor_blink);
CPY(disable_visual_bell);
CPY(disable_switch_anim);
CPY(translucent);
CPY(mute);
CPY(urg_bell);

View File

@ -42,6 +42,9 @@ struct _Config
Eina_Bool flicker_on_key;
Eina_Bool disable_cursor_blink;
Eina_Bool disable_visual_bell;
Eina_Bool disable_switch_anim; /* disable terminal switch
* animations when issued by
* key binds */
Eina_Bool translucent;
Eina_Bool mute;
Eina_Bool urg_bell;

View File

@ -1373,6 +1373,7 @@ _cb_prev(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
Term *term = data;
Term *term2 = NULL;
Config *config = termio_config_get(term->term);
if (term->focused) term2 = _term_prev_get(term);
if (term2)
@ -1381,7 +1382,7 @@ _cb_prev(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
sp0 = _split_find(term->wn->win, term->term);
sp = _split_find(term2->wn->win, term2->term);
if (sp == sp0)
if (sp == sp0 && !config->disable_switch_anim)
_sel_go(sp, term2);
else
{
@ -1396,7 +1397,8 @@ _cb_next(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
{
Term *term = data;
Term *term2 = NULL;
Config *config = termio_config_get(term->term);
if (term->focused) term2 = _term_next_get(term);
if (term2)
{
@ -1404,7 +1406,7 @@ _cb_next(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
sp0 = _split_find(term->wn->win, term->term);
sp = _split_find(term2->wn->win, term2->term);
if (sp == sp0)
if (sp == sp0 && !config->disable_switch_anim)
_sel_go(sp, term2);
else
{
@ -2584,6 +2586,8 @@ static const Ecore_Getopt options = {
"Set cursor blink mode."),
ECORE_GETOPT_STORE_BOOL('G', "visual-bell",
"Set visual bell mode."),
ECORE_GETOPT_STORE_BOOL('A', "switch-anim",
"Set terminal switch animations mode."),
ECORE_GETOPT_STORE_TRUE('F', "fullscreen",
"Go into the fullscreen mode from start."),
ECORE_GETOPT_STORE_TRUE('I', "iconic",
@ -2629,6 +2633,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 switch_anim = 0xff; /* unset */
Eina_Bool fullscreen = EINA_FALSE;
Eina_Bool iconic = EINA_FALSE;
Eina_Bool borderless = EINA_FALSE;
@ -2663,6 +2668,7 @@ elm_main(int argc, char **argv)
ECORE_GETOPT_VALUE_BOOL(video_mute),
ECORE_GETOPT_VALUE_BOOL(cursor_blink),
ECORE_GETOPT_VALUE_BOOL(visual_bell),
ECORE_GETOPT_VALUE_BOOL(switch_anim),
ECORE_GETOPT_VALUE_BOOL(fullscreen),
ECORE_GETOPT_VALUE_BOOL(iconic),
ECORE_GETOPT_VALUE_BOOL(borderless),
@ -2852,6 +2858,11 @@ elm_main(int argc, char **argv)
config->disable_visual_bell = !visual_bell;
config->temporary = EINA_TRUE;
}
if (switch_anim != 0xff)
{
config->disable_switch_anim = !switch_anim;
config->temporary = EINA_TRUE;
}
if (xterm_256color)
{

View File

@ -57,6 +57,15 @@ _cb_op_behavior_visual_bell_chg(void *data, Evas_Object *obj, void *event EINA_U
config_save(config, NULL);
}
static void
_cb_op_behavior_switch_anim_chg(void *data, Evas_Object *obj, void *event EINA_UNUSED)
{
Evas_Object *term = data;
Config *config = termio_config_get(term);
config->disable_switch_anim = !elm_check_state_get(obj);
config_save(config, NULL);
}
static void
_cb_op_behavior_flicker_chg(void *data, Evas_Object *obj, void *event EINA_UNUSED)
{
@ -341,6 +350,18 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
evas_object_smart_callback_add(o, "changed",
_cb_op_behavior_visual_bell_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, "Terminal switch animation");
elm_object_tooltip_text_set
(o, "By turning this off, terminal switch actions won't be animated");
elm_check_state_set(o, !config->disable_switch_anim);
elm_box_pack_end(bx, o);
evas_object_show(o);
evas_object_smart_callback_add(o, "changed",
_cb_op_behavior_switch_anim_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);