From 3da7e0d1e098e54f8358150447551cdc85905f75 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 14 Jul 2017 18:44:22 -0400 Subject: [PATCH] freeze pointer animations while screensaver is active --- src/bin/e_comp_canvas.c | 2 ++ src/bin/e_pointer.c | 15 +++++++++++++++ src/bin/e_pointer.h | 1 + 3 files changed, 18 insertions(+) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index c3c2f425b..8c5cf1e71 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -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; } //////////////////////////////////// diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index 5b832d730..60c7a1800 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -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); + } +} diff --git a/src/bin/e_pointer.h b/src/bin/e_pointer.h index 8dc3f7796..37b6e1952 100644 --- a/src/bin/e_pointer.h +++ b/src/bin/e_pointer.h @@ -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);