summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-02-21 17:01:13 +0100
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-02-21 17:01:13 +0100
commit57b8f3e0934f920cc8de307766df801ca37e3529 (patch)
treea3150c31e8c469bb36cf420ac0401b079049eccf
parent35bb87529f701f0128a338b2313092c4876c6737 (diff)
e_sys: bring back system actions after resume was called
when resume is called we are just notifing the theme that e is back there. There is no E_Sys_Action for it, so its enough for now to just call the backlight to fade back in and emit the signal to the theme. This should fix e blocking sys actions
-rw-r--r--src/bin/e_sys.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c
index 98a6a66eb..c0341127b 100644
--- a/src/bin/e_sys.c
+++ b/src/bin/e_sys.c
@@ -108,27 +108,34 @@ _e_sys_comp_action_timeout(void *data)
108} 108}
109 109
110static void 110static void
111_e_sys_comp_emit_cb_wait(E_Sys_Action a, const char *sig, const char *rep, Eina_Bool nocomp_push) 111_e_sys_comp_zones_fade(const char *sig, Eina_Bool out)
112{ 112{
113 const Eina_List *l; 113 const Eina_List *l;
114 E_Zone *zone; 114 E_Zone *zone;
115 Eina_Bool first = EINA_TRUE;
116
117 if (_e_sys_comp_waiting == 0) _e_sys_comp_waiting++;
118 if (nocomp_push) e_comp_override_add();
119 else e_comp_override_timed_pop();
120 printf("_e_sys_comp_emit_cb_wait - [%x] %s %s\n", a, sig, rep);
121 EINA_LIST_FOREACH(e_comp->zones, l, zone) 115 EINA_LIST_FOREACH(e_comp->zones, l, zone)
122 { 116 {
123 e_zone_fade_handle(zone, nocomp_push, 0.5); 117 e_zone_fade_handle(zone, out, 0.5);
124 edje_object_signal_emit(zone->base, sig, "e"); 118 edje_object_signal_emit(zone->base, sig, "e");
125 edje_object_signal_emit(zone->over, sig, "e"); 119 edje_object_signal_emit(zone->over, sig, "e");
126 if ((rep) && (first))
127 edje_object_signal_callback_add(zone->over, rep, "e", _e_sys_comp_done_cb, (void *)(long)a);
128 first = EINA_FALSE;
129 } 120 }
121}
122
123static void
124_e_sys_comp_emit_cb_wait(E_Sys_Action a, const char *sig, const char *rep, Eina_Bool nocomp_push)
125{
126 E_Zone *zone;
127
128 if (_e_sys_comp_waiting == 0) _e_sys_comp_waiting++;
129 if (nocomp_push) e_comp_override_add();
130 else e_comp_override_timed_pop();
131 printf("_e_sys_comp_emit_cb_wait - [%x] %s %s\n", a, sig, rep);
132
133 _e_sys_comp_zones_fade(sig, nocomp_push);
134
130 if (rep) 135 if (rep)
131 { 136 {
137 zone = eina_list_data_get(e_comp->zones);
138 if (zone) edje_object_signal_callback_add(zone->over, rep, "e", _e_sys_comp_done_cb, (void *)(long)a);
132 if (action_timeout) ecore_timer_del(action_timeout); 139 if (action_timeout) ecore_timer_del(action_timeout);
133 action_timeout = ecore_timer_loop_add(ACTION_TIMEOUT, (Ecore_Task_Cb)_e_sys_comp_action_timeout, (intptr_t*)(long)a); 140 action_timeout = ecore_timer_loop_add(ACTION_TIMEOUT, (Ecore_Task_Cb)_e_sys_comp_action_timeout, (intptr_t*)(long)a);
134 } 141 }
@@ -168,7 +175,7 @@ static void
168_e_sys_comp_resume(void) 175_e_sys_comp_resume(void)
169{ 176{
170 evas_damage_rectangle_add(e_comp->evas, 0, 0, e_comp->w, e_comp->h); 177 evas_damage_rectangle_add(e_comp->evas, 0, 0, e_comp->w, e_comp->h);
171 _e_sys_comp_emit_cb_wait(E_SYS_SUSPEND, "e,state,sys,resume", NULL, EINA_FALSE); 178 _e_sys_comp_zones_fade("e,state,sys,resume", EINA_FALSE);
172 e_screensaver_deactivate(); 179 e_screensaver_deactivate();
173} 180}
174 181