summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/efl_wl/efl_wl.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index 736203938f..da935c3512 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -1249,12 +1249,16 @@ shell_surface_send_configure(Comp_Surface *cs)
1249 { 1249 {
1250 Comp_Surface *ccs; 1250 Comp_Surface *ccs;
1251 1251
1252 comp_seats_redo_enter(cs->c, cs); 1252 /* apply activation to already-mapped surface */
1253 if (cs->mapped)
1254 {
1255 comp_seats_redo_enter(cs->c, cs);
1256 shell_surface_aspect_update(cs);
1257 shell_surface_minmax_update(cs);
1258 }
1253 EINA_INLIST_FOREACH(cs->children, ccs) 1259 EINA_INLIST_FOREACH(cs->children, ccs)
1254 if (ccs->shell.surface && ccs->role && ccs->shell.popup) 1260 if (ccs->shell.surface && ccs->role && ccs->shell.popup)
1255 ccs->shell.activated = cs->shell.activated; 1261 ccs->shell.activated = cs->shell.activated;
1256 shell_surface_aspect_update(cs);
1257 shell_surface_minmax_update(cs);
1258 } 1262 }
1259 else 1263 else
1260 shell_surface_deactivate_recurse(cs); 1264 shell_surface_deactivate_recurse(cs);
@@ -1422,6 +1426,13 @@ comp_surface_commit_state(Comp_Surface *cs, Comp_Buffer_State *state)
1422 { 1426 {
1423 if (cs->role && (!cs->extracted)) 1427 if (cs->role && (!cs->extracted))
1424 evas_object_show(cs->obj); 1428 evas_object_show(cs->obj);
1429 /* apply activation to activated surface on map */
1430 if (cs->role && cs->shell.surface && cs->shell.activated && (!cs->shell.popup))
1431 {
1432 comp_seats_redo_enter(cs->c, cs);
1433 shell_surface_aspect_update(cs);
1434 shell_surface_minmax_update(cs);
1435 }
1425 } 1436 }
1426 1437
1427 if (state->attach && state->buffer) 1438 if (state->attach && state->buffer)