From 864fcb6c17e9d31580369d5a477bffc6890375c9 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 24 Aug 2010 09:26:34 +0000 Subject: [PATCH] fix sync issue in 1 special event re-order case. booo! SVN revision: 51609 --- legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index e863b64ead..f340298222 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c @@ -657,6 +657,11 @@ _ecore_evas_x_event_client_message(void *data __UNUSED__, int type __UNUSED__, v ee = ecore_event_window_match(e->data.l[0]); if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */ if (e->data.l[0] != (long)ee->prop.window) return ECORE_CALLBACK_PASS_ON; + if (!ee->engine.x.sync_began) + { + // qeue a damage + draw. work around an event re-ordering thing. + evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); + } ee->engine.x.sync_began = 1; ee->engine.x.sync_cancel = 0; } @@ -2892,7 +2897,7 @@ static void _ecore_evas_x_flush_post(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__) { Ecore_Evas *ee = data; - + if (ee->no_comp_sync) return; if (!_ecore_evas_app_comp_sync) return; if (ee->engine.x.sync_counter)