pointer freeze - delay by 10 sec... because anim is used for hiding

this broke pointer hiding entirely... fix
This commit is contained in:
Carsten Haitzler 2017-07-19 10:30:05 +09:00
parent e7eaef62f3
commit e38ac79a3c
1 changed files with 19 additions and 2 deletions

View File

@ -3,6 +3,7 @@
static Eina_List *handlers;
static Ecore_Timer *timer_post_screensaver_lock = NULL;
static Ecore_Timer *timer_post_screensaver_on = NULL;
static Ecore_Timer *timer_pointer_freeze = NULL;
static void
_e_comp_canvas_cb_del()
@ -10,6 +11,7 @@ _e_comp_canvas_cb_del()
E_FREE_LIST(handlers, ecore_event_handler_del);
E_FREE_FUNC(timer_post_screensaver_lock, ecore_timer_del);
E_FREE_FUNC(timer_post_screensaver_on, ecore_timer_del);
E_FREE_FUNC(timer_pointer_freeze, ecore_timer_del);
}
static void
@ -279,6 +281,14 @@ _e_comp_cb_timer_post_screensaver_lock(void *data EINA_UNUSED)
return ECORE_CALLBACK_CANCEL;
}
static Eina_Bool
_e_comp_cb_screensaver_ponter_freeze_cb(void *data EINA_UNUSED)
{
e_pointers_freeze_set(EINA_TRUE);
timer_pointer_freeze = NULL;
return EINA_FALSE;
}
static Eina_Bool
_e_comp_cb_screensaver_on()
{
@ -296,7 +306,9 @@ _e_comp_cb_screensaver_on()
(e_config->desklock_post_screensaver_time,
_e_comp_cb_timer_post_screensaver_lock, NULL);
}
e_pointers_freeze_set(1);
if (timer_pointer_freeze) ecore_timer_del(timer_pointer_freeze);
timer_pointer_freeze = ecore_timer_add
(10.0, _e_comp_cb_screensaver_ponter_freeze_cb, NULL);
return ECORE_CALLBACK_PASS_ON;
}
@ -305,7 +317,12 @@ _e_comp_cb_screensaver_off()
{
E_FREE_FUNC(timer_post_screensaver_lock, ecore_timer_del);
E_FREE_FUNC(timer_post_screensaver_on, ecore_timer_del);
e_pointers_freeze_set(0);
e_pointers_freeze_set(EINA_FALSE);
if (timer_pointer_freeze)
{
ecore_timer_del(timer_pointer_freeze);
timer_pointer_freeze = NULL;
}
return ECORE_CALLBACK_PASS_ON;
}
////////////////////////////////////