discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=3da7e0d1e098e54f8358150447551cdc85905f75

commit 3da7e0d1e098e54f8358150447551cdc85905f75
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Jul 14 18:44:22 2017 -0400

    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);

-- 


Reply via email to