forked from enlightenment/terminology
win: simplify focus handling when dropping tab to split
This commit is contained in:
parent
5c85b8c624
commit
5d2e0479b9
|
@ -725,7 +725,6 @@ _solo_focus(Term_Container *tc, Term_Container *relative)
|
||||||
tc->parent->focus(tc->parent, tc);
|
tc->parent->focus(tc->parent, tc);
|
||||||
}
|
}
|
||||||
|
|
||||||
tc->is_focused = EINA_TRUE;
|
|
||||||
if (term->config->disable_focus_visuals)
|
if (term->config->disable_focus_visuals)
|
||||||
{
|
{
|
||||||
elm_layout_signal_emit(term->bg, "focused,set", "terminology");
|
elm_layout_signal_emit(term->bg, "focused,set", "terminology");
|
||||||
|
@ -746,6 +745,12 @@ _solo_focus(Term_Container *tc, Term_Container *relative)
|
||||||
if (term->missed_bell)
|
if (term->missed_bell)
|
||||||
term->missed_bell = EINA_FALSE;
|
term->missed_bell = EINA_FALSE;
|
||||||
edje_object_message_signal_process(term->bg_edj);
|
edje_object_message_signal_process(term->bg_edj);
|
||||||
|
if (!tc->is_focused && relative != tc->parent)
|
||||||
|
{
|
||||||
|
tc->is_focused = EINA_TRUE;
|
||||||
|
tc->parent->focus(tc->parent, tc);
|
||||||
|
}
|
||||||
|
tc->is_focused = EINA_TRUE;
|
||||||
_focus_validator();
|
_focus_validator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1352,6 +1357,11 @@ _win_focus(Term_Container *tc, Term_Container *relative)
|
||||||
wn = (Win*) tc;
|
wn = (Win*) tc;
|
||||||
DBG("tc:%p tc->is_focused:%d from_child:%d",
|
DBG("tc:%p tc->is_focused:%d from_child:%d",
|
||||||
tc, tc->is_focused, wn->child == relative);
|
tc, tc->is_focused, wn->child == relative);
|
||||||
|
|
||||||
|
if (!tc->is_focused)
|
||||||
|
elm_win_urgent_set(wn->win, EINA_FALSE);
|
||||||
|
|
||||||
|
tc->is_focused = EINA_TRUE;
|
||||||
if ((relative != wn->child) || (!wn->focused))
|
if ((relative != wn->child) || (!wn->focused))
|
||||||
{
|
{
|
||||||
DBG("focus tc:%p", tc);
|
DBG("focus tc:%p", tc);
|
||||||
|
@ -1370,10 +1380,6 @@ _win_focus(Term_Container *tc, Term_Container *relative)
|
||||||
termio_imf_cursor_set(focused->termio, wn->khdl.imf);
|
termio_imf_cursor_set(focused->termio, wn->khdl.imf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tc->is_focused)
|
|
||||||
elm_win_urgent_set(wn->win, EINA_FALSE);
|
|
||||||
tc->is_focused = EINA_TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1553,6 +1559,9 @@ _win_split_direction(Term_Container *tc,
|
||||||
child1 = child_orig;
|
child1 = child_orig;
|
||||||
child2 = child_new;
|
child2 = child_new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wn->tc.unfocus(&wn->tc, NULL); /* unfocus from top */
|
||||||
|
|
||||||
tc_split = _split_new(child1, child2, is_horizontal);
|
tc_split = _split_new(child1, child2, is_horizontal);
|
||||||
|
|
||||||
if (wn->config->show_tabs)
|
if (wn->config->show_tabs)
|
||||||
|
@ -1567,8 +1576,7 @@ _win_split_direction(Term_Container *tc,
|
||||||
tc_split->is_focused = tc->is_focused;
|
tc_split->is_focused = tc->is_focused;
|
||||||
tc->swallow(tc, NULL, tc_split);
|
tc->swallow(tc, NULL, tc_split);
|
||||||
|
|
||||||
child_orig->unfocus(child_orig, tc_split);
|
child_new->focus(child_new, NULL); /* refocus from bottom */
|
||||||
child_new->focus(child_new, tc_split);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2727,8 +2735,10 @@ _split_focus(Term_Container *tc, Term_Container *relative)
|
||||||
split->last_focus->unfocus(split->last_focus, tc);
|
split->last_focus->unfocus(split->last_focus, tc);
|
||||||
split->last_focus = relative;
|
split->last_focus = relative;
|
||||||
if (!tc->is_focused)
|
if (!tc->is_focused)
|
||||||
tc->parent->focus(tc->parent, tc);
|
{
|
||||||
tc->is_focused = EINA_TRUE;
|
tc->is_focused = EINA_TRUE;
|
||||||
|
tc->parent->focus(tc->parent, tc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2880,6 +2890,8 @@ _split_split_direction(Term_Container *tc,
|
||||||
else
|
else
|
||||||
elm_object_part_content_unset(split->panes, PANES_BOTTOM);
|
elm_object_part_content_unset(split->panes, PANES_BOTTOM);
|
||||||
|
|
||||||
|
wn->tc.unfocus(&wn->tc, NULL); /* unfocus from top */
|
||||||
|
|
||||||
tc_split = _split_new(child1, child2, is_horizontal);
|
tc_split = _split_new(child1, child2, is_horizontal);
|
||||||
|
|
||||||
if (wn->config->show_tabs)
|
if (wn->config->show_tabs)
|
||||||
|
@ -2894,8 +2906,7 @@ _split_split_direction(Term_Container *tc,
|
||||||
tc_split->is_focused = tc->is_focused;
|
tc_split->is_focused = tc->is_focused;
|
||||||
tc->swallow(tc, child_orig, tc_split);
|
tc->swallow(tc, child_orig, tc_split);
|
||||||
|
|
||||||
child_orig->unfocus(child_orig, tc);
|
child_new->focus(child_new, NULL); /* refocus from bottom */
|
||||||
child_new->focus(child_new, tc_split);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue