add behavior option to disable focus-in/out animations and visuals

this is useful for CI
This commit is contained in:
Mike Blumenkrantz 2017-03-13 12:02:52 -04:00 committed by Boris Faure
parent 566dc187d6
commit 9309941875
7 changed files with 57 additions and 9 deletions

View File

@ -1008,6 +1008,16 @@ collections {
target: "shine";
after: "focus_in2";
}
program {
signal: "focused,set"; source: "terminology";
action: STATE_SET "focused" 0.0;
target: "glint";
target: "shine";
sequence {
action: STATE_SET "focused2" 0.0;
target: "glow";
}
}
program { name: "focus_in2";
action: STATE_SET "focused2" 0.0;
transition: DECELERATE 0.5;

View File

@ -86,6 +86,12 @@ collections {
transition: ACCELERATE 0.1;
target: "focusclip";
}
program {
signal: "focused,set";
source: "terminology";
action: STATE_SET "default" 0.0;
target: "focusclip";
}
program {
signal: "focus,out";
source: "terminology";

View File

@ -151,6 +151,9 @@ config_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "mouse_over_focus",
mouse_over_focus, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "disable_focus_visuals",
disable_focus_visuals, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC
(edd_base, Config, "colors_use", colors_use, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_ARRAY
@ -265,6 +268,7 @@ config_sync(const Config *config_src, Config *config)
config->colors_use = config_src->colors_use;
memcpy(config->colors, config_src->colors, sizeof(config->colors));
config->mouse_over_focus = config_src->mouse_over_focus;
config->disable_focus_visuals = config_src->disable_focus_visuals;
/* TODO: config->keys */
config->gravatar = config_src->gravatar;
config->notabs = config_src->notabs;
@ -512,6 +516,7 @@ config_new(void)
config->drag_links = EINA_FALSE;
config->login_shell = EINA_FALSE;
config->mouse_over_focus = EINA_TRUE;
config->disable_focus_visuals = EINA_FALSE;
config->colors_use = EINA_FALSE;
config->gravatar = EINA_TRUE;
config->notabs = EINA_FALSE;
@ -701,6 +706,7 @@ config_fork(Config *config)
CPY(colors_use);
memcpy(config2->colors, config->colors, sizeof(config->colors));
CPY(mouse_over_focus);
CPY(disable_focus_visuals);
CPY(temporary);
SCPY(config_key);
CPY(font_set);

View File

@ -72,6 +72,7 @@ struct _Config
Eina_Bool drag_links;
Eina_Bool login_shell;
Eina_Bool mouse_over_focus;
Eina_Bool disable_focus_visuals;
Eina_Bool colors_use;
Eina_Bool gravatar;
Eina_Bool notabs;

View File

@ -39,6 +39,7 @@ CB(erase_is_del, 0);
CB(drag_links, 0);
CB(login_shell, 0);
CB(mouse_over_focus, 0);
CB(disable_focus_visuals, 0);
CB(gravatar, 0);
CB(notabs, 1);
CB(mv_always_show, 0);
@ -199,6 +200,7 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
CX(_("Drag & drop links"), drag_links, 0);
CX(_("Start as login shell"), login_shell, 0);
CX(_("Focus split under the Mouse"), mouse_over_focus, 0);
CX(_("Disable focus-out visuals"), disable_focus_visuals, 0);
CX(_("Gravatar integration"), gravatar, 0);
CX(_("Show tabs"), notabs, 1);
CX(_("Always show miniview"), mv_always_show, 0);

View File

@ -3518,7 +3518,8 @@ _smart_cb_focus_out(void *data,
Termio *sd = evas_object_smart_data_get(data);
EINA_SAFETY_ON_NULL_RETURN(sd);
edje_object_signal_emit(sd->cursor.obj, "focus,out", "terminology");
if (!sd->config->disable_focus_visuals)
edje_object_signal_emit(sd->cursor.obj, "focus,out", "terminology");
if (!sd->win) return;
sd->pty->selection.last_click = 0;
elm_win_keyboard_mode_set(sd->win, ELM_WIN_KEYBOARD_OFF);

View File

@ -370,8 +370,11 @@ _solo_unfocus(Term_Container *tc, Term_Container *relative)
if (tc->parent != relative)
tc->parent->unfocus(tc->parent, tc);
edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
if (!term->config->disable_focus_visuals)
{
edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
}
if (!tc->wn->cmdbox_up)
elm_object_focus_set(term->termio, EINA_FALSE);
@ -402,8 +405,16 @@ _solo_focus(Term_Container *tc, Term_Container *relative)
tc->parent->focus(tc->parent, tc);
tc->is_focused = EINA_TRUE;
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
if (term->config->disable_focus_visuals)
{
edje_object_signal_emit(term->bg, "focused,set", "terminology");
edje_object_signal_emit(term->base, "focused,set", "terminology");
}
else
{
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
}
if (term->wn->cmdbox)
elm_object_focus_set(term->wn->cmdbox, EINA_FALSE);
elm_object_focus_set(term->termio, EINA_TRUE);
@ -498,8 +509,11 @@ _cb_win_focus_in(void *data,
{
if (term)
{
edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
if (!term->config->disable_focus_visuals)
{
edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
}
if (!wn->cmdbox_up)
elm_object_focus_set(term->termio, EINA_FALSE);
}
@ -4094,8 +4108,16 @@ _term_bg_config(Term *term)
DBG("is focused? tc:%p", term->container);
if (_term_is_focused(term) && (_win_is_focused(term->wn)))
{
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
if (term->config->disable_focus_visuals)
{
edje_object_signal_emit(term->bg, "focused,set", "terminology");
edje_object_signal_emit(term->base, "focused,set", "terminology");
}
else
{
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
}
if (term->wn->cmdbox)
elm_object_focus_set(term->wn->cmdbox, EINA_FALSE);
elm_object_focus_set(term->termio, EINA_TRUE);