fix sync issue in 1 special event re-order case. booo!

SVN revision: 51609
This commit is contained in:
Carsten Haitzler 2010-08-24 09:26:34 +00:00
parent 716211ade3
commit 864fcb6c17
1 changed files with 6 additions and 1 deletions

View File

@ -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]); ee = ecore_event_window_match(e->data.l[0]);
if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */ 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 (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_began = 1;
ee->engine.x.sync_cancel = 0; 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_x_flush_post(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__)
{ {
Ecore_Evas *ee = data; Ecore_Evas *ee = data;
if (ee->no_comp_sync) return; if (ee->no_comp_sync) return;
if (!_ecore_evas_app_comp_sync) return; if (!_ecore_evas_app_comp_sync) return;
if (ee->engine.x.sync_counter) if (ee->engine.x.sync_counter)