win/options_mouse: apply mouse timer change to current terms

This commit is contained in:
Boris Faure 2020-07-29 22:43:25 +02:00
parent cee0b62281
commit d082b0d6d7
Signed by untrusted user who does not match committer: borisfaure
GPG Key ID: 35C0410516166BE8
2 changed files with 32 additions and 19 deletions

View File

@ -93,6 +93,7 @@ _cb_op_hide_cursor_changed(void *data,
config->hide_cursor = CONFIG_CURSOR_IDLE_TIMEOUT_MAX + 1.0; config->hide_cursor = CONFIG_CURSOR_IDLE_TIMEOUT_MAX + 1.0;
elm_object_disabled_set(ctx->sld_hide_cursor, EINA_TRUE); elm_object_disabled_set(ctx->sld_hide_cursor, EINA_TRUE);
} }
windows_update();
config_save(config); config_save(config);
} }
@ -109,6 +110,7 @@ _cb_hide_cursor_slider_chg(void *data,
return; return;
config->hide_cursor = value; config->hide_cursor = value;
windows_update();
config_save(config); config_save(config);
} }

View File

@ -146,6 +146,7 @@ struct _Term
unsigned char miniview_shown : 1; unsigned char miniview_shown : 1;
unsigned char popmedia_deleted : 1; unsigned char popmedia_deleted : 1;
unsigned char has_bg_cursor : 1; unsigned char has_bg_cursor : 1;
unsigned char core_cursor_set: 1;
Eina_Bool sendfile_request_enabled : 1; Eina_Bool sendfile_request_enabled : 1;
Eina_Bool sendfile_progress_enabled : 1; Eina_Bool sendfile_progress_enabled : 1;
@ -1605,6 +1606,27 @@ _win_split_direction(Term_Container *tc,
return 0; 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 static void
_win_update(Term_Container *tc) _win_update(Term_Container *tc)
{ {
@ -1613,6 +1635,14 @@ _win_update(Term_Container *tc)
assert (tc->type == TERM_CONTAINER_TYPE_WIN); assert (tc->type == TERM_CONTAINER_TYPE_WIN);
wn = (Win*) tc; 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); wn->child->update(wn->child);
} }
@ -2037,25 +2067,6 @@ _cb_win_mouse_down(void *data,
tc_child->focus(tc_child, tc); 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 static Eina_Bool
_hide_cursor(void *data) _hide_cursor(void *data)
{ {