billiob pushed a commit to branch terminology-1.8.

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

commit df6b0138956fbe923f68d63567747ea88562718c
Author: Boris Faure <bill...@gmail.com>
Date:   Wed Jul 29 22:43:25 2020 +0200

    win/options_mouse: apply mouse timer change to current terms
    
    (cherry picked from commit d082b0d6d78033d144734e44c0aa7c81b9bc41ec)
---
 src/bin/options_mouse.c |  2 ++
 src/bin/win.c           | 49 ++++++++++++++++++++++++++++++-------------------
 2 files changed, 32 insertions(+), 19 deletions(-)

diff --git a/src/bin/options_mouse.c b/src/bin/options_mouse.c
index 1e41072..c858ebe 100644
--- a/src/bin/options_mouse.c
+++ b/src/bin/options_mouse.c
@@ -93,6 +93,7 @@ _cb_op_hide_cursor_changed(void *data,
         config->hide_cursor = CONFIG_CURSOR_IDLE_TIMEOUT_MAX + 1.0;
         elm_object_disabled_set(ctx->sld_hide_cursor, EINA_TRUE);
      }
+   windows_update();
    config_save(config);
 }
 
@@ -109,6 +110,7 @@ _cb_hide_cursor_slider_chg(void *data,
        return;
 
    config->hide_cursor = value;
+   windows_update();
    config_save(config);
 }
 
diff --git a/src/bin/win.c b/src/bin/win.c
index 42c60d2..594cfc5 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -146,6 +146,7 @@ struct _Term
    unsigned char miniview_shown : 1;
    unsigned char popmedia_deleted : 1;
    unsigned char has_bg_cursor : 1;
+   unsigned char core_cursor_set: 1;
 
    Eina_Bool sendfile_request_enabled : 1;
    Eina_Bool sendfile_progress_enabled : 1;
@@ -1605,6 +1606,27 @@ _win_split_direction(Term_Container *tc,
    return 0;
 }
 
+static Eina_Bool
+_set_cursor(Term *term, void *data)
+{
+   const char *cursor = data;
+
+   assert(term->core);
+   if (cursor)
+     {
+        elm_object_cursor_set(term->core, cursor);
+        term->core_cursor_set = 1;
+     }
+   else
+     {
+        if (term->core_cursor_set)
+          elm_object_cursor_unset(term->core);
+        term->core_cursor_set = 0;
+     }
+
+   return ECORE_CALLBACK_PASS_ON;
+}
+
 static void
 _win_update(Term_Container *tc)
 {
@@ -1613,6 +1635,14 @@ _win_update(Term_Container *tc)
    assert (tc->type == TERM_CONTAINER_TYPE_WIN);
    wn = (Win*) tc;
 
+   if (wn->config->hide_cursor >= CONFIG_CURSOR_IDLE_TIMEOUT_MAX)
+     {
+        ecore_timer_del(wn->hide_cursor_timer);
+        wn->hide_cursor_timer = NULL;
+
+        for_each_term_do(wn, &_set_cursor, NULL);
+     }
+
    wn->child->update(wn->child);
 }
 
@@ -2037,25 +2067,6 @@ _cb_win_mouse_down(void *data,
    tc_child->focus(tc_child, tc);
 }
 
-static Eina_Bool
-_set_cursor(Term *term, void *data)
-{
-   const char *cursor = data;
-
-   assert(term->core);
-   if (cursor)
-     {
-        elm_object_cursor_set(term->core, cursor);
-     }
-   else
-     {
-        elm_object_cursor_unset(term->core);
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-
 static Eina_Bool
 _hide_cursor(void *data)
 {

-- 


Reply via email to