freeze pointer animations while screensaver is active

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

View File

@ -296,6 +296,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;
}
@ -304,6 +305,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

@ -818,3 +818,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

@ -65,6 +65,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);