From e0ec0c2a779be0ec796b8f75a0da9fd144cb64af Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Thu, 5 Nov 2015 17:46:40 +0900 Subject: [PATCH] visibility: calculate visibility when the display(LCD) is turned on/off Change-Id: I9460349cd60268bb6357a52c5b7099854493ed26 --- src/e_mod_main.c | 15 +++++++++++++++ src/e_mod_visivility.c | 7 +++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 7c749d5..93b55a9 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -40,6 +40,7 @@ static Eina_Bool _pol_cb_zone_add(void *data EINA_UNUSED, int type EINA_UNUSED static Eina_Bool _pol_cb_zone_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event); static Eina_Bool _pol_cb_zone_move_resize(void *data EINA_UNUSED, int type EINA_UNUSED, void *event); static Eina_Bool _pol_cb_zone_desk_count_set(void *data EINA_UNUSED, int type EINA_UNUSED, void *event); +static Eina_Bool _pol_cb_zone_display_state_change(void *data EINA_UNUSED, int type EINA_UNUSED, void *event); static Eina_Bool _pol_cb_desk_show(void *data EINA_UNUSED, int type EINA_UNUSED, void *event); static Eina_Bool _pol_cb_client_remove(void *data EINA_UNUSED, int type, void *event); static Eina_Bool _pol_cb_client_add(void *data EINA_UNUSED, int type, void *event); @@ -607,6 +608,19 @@ _pol_cb_zone_desk_count_set(void *data EINA_UNUSED, int type EINA_UNUSED, void * return ECORE_CALLBACK_PASS_ON; } +static Eina_Bool +_pol_cb_zone_display_state_change(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) +{ + E_Event_Zone_Display_State_Change *ev; + + ev = event; + if (!ev) return ECORE_CALLBACK_PASS_ON; + + e_mod_pol_zone_visibility_calc(ev->zone); + + return ECORE_CALLBACK_PASS_ON; +} + static Eina_Bool _pol_cb_desk_show(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { @@ -1093,6 +1107,7 @@ e_modapi_init(E_Module *m) E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_DEL, _pol_cb_zone_del, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_MOVE_RESIZE, _pol_cb_zone_move_resize, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_DESK_COUNT_SET, _pol_cb_zone_desk_count_set, NULL); + E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_DISPLAY_STATE_CHANGE, _pol_cb_zone_display_state_change, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_DESK_SHOW, _pol_cb_desk_show, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_REMOVE, _pol_cb_client_remove, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_CLIENT_ADD, _pol_cb_client_add, NULL); diff --git a/src/e_mod_visivility.c b/src/e_mod_visivility.c index 91c9d66..97d805a 100644 --- a/src/e_mod_visivility.c +++ b/src/e_mod_visivility.c @@ -208,8 +208,11 @@ e_mod_pol_zone_visibility_calc(E_Zone *zone) t = eina_tiler_new(zone->w + edge, zone->h + edge); eina_tiler_tile_size_set(t, 1, 1); - EINA_RECTANGLE_SET(&r, zone->x, zone->y, zone->w, zone->h); - eina_tiler_rect_add(t, &r); + if (zone->display_state != E_ZONE_DISPLAY_STATE_OFF) + { + EINA_RECTANGLE_SET(&r, zone->x, zone->y, zone->w, zone->h); + eina_tiler_rect_add(t, &r); + } E_CLIENT_REVERSE_FOREACH(zone->comp, ec) { -- 2.34.1