billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=0d5a79670337bcb5feda035e1ca59f2e0952a1f6

commit 0d5a79670337bcb5feda035e1ca59f2e0952a1f6
Author: Boris Faure <[email protected]>
Date:   Tue Apr 14 22:51:14 2020 +0200

    win: fix focus display when focusing in/out and grouped input
---
 src/bin/win.c | 35 +++++++++++++++++++++++++++++------
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/src/bin/win.c b/src/bin/win.c
index bf1c2bf..c3ad730 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -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)
 {

-- 


Reply via email to