discomfitor pushed a commit to branch master.

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

commit bf7a2e8c47e47832302016b47838fddcd5abc332
Author: discomfitor <michael.blumenkra...@gmail.com>
Date:   Sat Oct 26 07:50:36 2013 +0100

    add blocker rects for desklock
    
    add a black rect to cover the screen during desklock
---
 src/bin/e_desklock.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c
index 6028f6a..bd90faa 100644
--- a/src/bin/e_desklock.c
+++ b/src/bin/e_desklock.c
@@ -78,6 +78,8 @@ static Eina_List *tasks = NULL;
 static Eina_List *show_cbs = NULL;
 static Eina_List *hide_cbs = NULL;
 
+static Eina_List *block_rects = NULL;
+
 /***********************************************************************/
 
 static Eina_Bool _e_desklock_cb_key_down(void *data, int type, void *event);
@@ -237,7 +239,8 @@ e_desklock_show_autolocked(void)
 EAPI int
 e_desklock_show(Eina_Bool suspend)
 {
-   Eina_List *l, *l3;
+   const Eina_List *l, *l3;
+   E_Comp *comp;
    E_Manager *man;
    int total_zone_num;
    E_Event_Desklock *ev;
@@ -298,7 +301,17 @@ e_desklock_show(Eina_Bool suspend)
      }
    edd = E_NEW(E_Desklock_Data, 1);
    if (!edd) return 0;
-   //e_comp_block_window_add();
+   EINA_LIST_FOREACH(e_comp_list(), l, comp)
+     {
+        Evas_Object *o;
+
+        o = evas_object_rectangle_add(comp->evas);
+        block_rects = eina_list_append(block_rects, o);
+        evas_object_color_set(o, 0, 0, 0, 255);
+        evas_object_resize(o, comp->man->w, comp->man->h);
+        evas_object_layer_set(o, E_LAYER_DESKLOCK);
+        evas_object_show(o);
+     }
    if (e_config->desklock_language)
      e_intl_language_set(e_config->desklock_language);
 
@@ -351,6 +364,7 @@ e_desklock_hide(void)
 
    E_LIST_FOREACH(e_comp_list(), e_comp_override_del);
    E_LIST_FOREACH(e_comp_list(), e_comp_shape_queue);
+   E_FREE_LIST(block_rects, evas_object_del);
    //e_comp_block_window_del();
    if (e_config->desklock_language)
      e_intl_language_set(e_config->language);

-- 


Reply via email to