aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/elementary/src/lib/elm_win.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-02-18 18:15:00 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-02-18 18:17:27 +0900
commitf60527f3ff351917fa800808aa419c061264b709 (patch)
treeadfbc015011c8f3d607c7f263301569be4502826 /legacy/elementary/src/lib/elm_win.c
parentelm win: fix excess resize callbacks on windows when not really resizing (diff)
downloadefl-f60527f3ff351917fa800808aa419c061264b709.tar.gz
elm win: fix window redraw if norender is enabled on withdrawn windows
we dont set this config by default so we dont see this - but a window starts as withdrawn then becomes normal. this means the window starts not rendering and may take 0.5 seconds to START because the eval is deferred by 0.5 sec to avoid rapid switch to/from norender and other states. @fix
Diffstat (limited to 'legacy/elementary/src/lib/elm_win.c')
-rw-r--r--legacy/elementary/src/lib/elm_win.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c
index fa17423ec6..398314aced 100644
--- a/legacy/elementary/src/lib/elm_win.c
+++ b/legacy/elementary/src/lib/elm_win.c
@@ -1596,9 +1596,9 @@ _elm_win_evas_object_smart_show(Eo *obj, Elm_Win_Data *sd)
if (sd->modal_count) return;
const Eina_List *l;
Evas_Object *current;
+ Eina_Bool do_eval = EINA_FALSE;
- if (!evas_object_visible_get(obj))
- _elm_win_state_eval_queue();
+ if (!evas_object_visible_get(obj)) do_eval = EINA_TRUE;
eo_do_super(obj, MY_CLASS, evas_obj_smart_show());
if ((sd->modal) && (!evas_object_visible_get(obj)))
@@ -1619,6 +1619,15 @@ _elm_win_evas_object_smart_show(Eo *obj, Elm_Win_Data *sd)
elm_interface_atspi_accessible_children_changed_added_signal_emit(root, obj);
}
+ if (do_eval)
+ {
+ if (_elm_win_state_eval_timer)
+ {
+ ecore_timer_del(_elm_win_state_eval_timer);
+ _elm_win_state_eval_timer = NULL;
+ }
+ _elm_win_state_eval(NULL);
+ }
if (sd->shot.info) _shot_handle(sd);
}