freeze pointer animations while screensaver is active

This commit is contained in:
Mike Blumenkrantz 2017-07-14 18:44:22 -04:00
parent 7cba1a3bf4
commit cb3284cfe5
3 changed files with 18 additions and 0 deletions

View File

@ -244,6 +244,7 @@ _e_comp_cb_screensaver_on()
(e_config->desklock_post_screensaver_time,
_e_comp_cb_timer_post_screensaver_lock, NULL);
}
e_pointers_freeze_set(1);
return ECORE_CALLBACK_PASS_ON;
}
@ -252,6 +253,7 @@ _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);
return ECORE_CALLBACK_PASS_ON;
}
////////////////////////////////////

View File

@ -807,3 +807,18 @@ e_pointer_window_add(E_Pointer *ptr, Ecore_Window win)
_e_pointer_theme_buf(ptr, buf);
_e_pointer_x11_setup(ptr, buf);
}
EINTERN void
e_pointers_freeze_set(Eina_Bool set)
{
Eina_List *l;
E_Pointer *ptr;
EINA_LIST_FOREACH(_ptrs, l, ptr)
{
if (isedje(ptr->o_ptr))
edje_object_play_set(ptr->o_ptr, !set);
if (isedje(ptr->buffer_o_ptr))
edje_object_play_set(ptr->buffer_o_ptr, !set);
}
}

View File

@ -60,6 +60,7 @@ struct _E_Pointer
EINTERN int e_pointer_init(void);
EINTERN int e_pointer_shutdown(void);
EINTERN void e_pointers_freeze_set(Eina_Bool set);
E_API E_Pointer *e_pointer_window_new(Ecore_Window win, Eina_Bool filled);
E_API E_Pointer *e_pointer_canvas_new(Ecore_Evas *ee, Eina_Bool filled);