win: fix focus display when focusing in/out and grouped input

This commit is contained in:
Boris Faure 2020-04-14 22:51:14 +02:00
parent b5668d1791
commit 0d5a796703
Signed by untrusted user who does not match committer: borisfaure
GPG Key ID: 35C0410516166BE8
1 changed files with 29 additions and 6 deletions

View File

@ -284,6 +284,11 @@ static void
_focus_validator(void)
{}
#endif
#define GROUPED_INPUT_TERM_FOREACH(_wn, _list, _term) \
EINA_LIST_FOREACH(_wn->terms, _list, _term) \
if (!_wn->group_only_visible || term_is_visible(_term))
/* }}} */
/* {{{ Scale */
static void
@ -911,7 +916,19 @@ _cb_win_focus_in(void *data,
term = tc->focused_term_get(tc);
if ( wn->config->mouse_over_focus )
if (wn->group_input)
{
Eina_List *l;
Term *t;
GROUPED_INPUT_TERM_FOREACH(wn, l, t)
{
elm_layout_signal_emit(t->bg, "focus,in", "terminology");
termio_event_feed_mouse_in(t->termio);
termio_focus_in(t->termio);
}
}
else if ( wn->config->mouse_over_focus )
{
Term *term_mouse;
Evas_Coord mx, my;
@ -954,6 +971,17 @@ _cb_win_focus_out(void *data,
DBG("FOCUS OUT tc:%p tc->is_focused:%d",
tc, tc->is_focused);
tc->unfocus(tc, NULL);
if (wn->group_input)
{
Eina_List *l;
Term *term;
GROUPED_INPUT_TERM_FOREACH(wn, l, term)
{
elm_layout_signal_emit(term->bg, "focus,out", "terminology");
termio_focus_out(term->termio);
}
}
}
static Eina_Bool
@ -1600,11 +1628,6 @@ _cb_win_key_up(void *data,
keyin_handle_up(&wn->khdl, ev);
}
#define GROUPED_INPUT_TERM_FOREACH(_wn, _list, _term) \
EINA_LIST_FOREACH(_wn->terms, _list, _term) \
if (!_wn->group_only_visible || term_is_visible(_term))
const char *
term_preedit_str_get(Term *term)
{