discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4d62d59978e92fc8f78c62ea498e5e9cad23bf63
commit 4d62d59978e92fc8f78c62ea498e5e9cad23bf63 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Wed May 2 15:57:26 2018 -0400 ecore-evas-win32: set draw_block until the window receives a configure event Summary: drawing a window before receiving a configure event results in an unsized window, breaking spec. it also prevents ecore-evas resize callbacks from triggering, yielding undefined returns from functions which attempt to get the geometry of the ecore-evas ref T6907 @fix Depends on D6033 Reviewers: vtorri Reviewed By: vtorri Subscribers: cedric Maniphest Tasks: T6907 Differential Revision: https://phab.enlightenment.org/D6034 --- .../ecore_evas/engines/win32/ecore_evas_win32.c | 31 ++++------------------ 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c index 974ed1b721..9a5bd15914 100644 --- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c +++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c @@ -342,6 +342,7 @@ _ecore_evas_win32_event_window_configure(void *data EINA_UNUSED, int type EINA_U if (!ee) return ECORE_CALLBACK_PASS_ON; if ((Ecore_Window)e->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; + ee->draw_block = EINA_FALSE; pointer = evas_default_device_get(ee->evas, EFL_INPUT_DEVICE_TYPE_MOUSE); pointer = evas_device_parent_get(pointer); cursor = eina_hash_find(ee->prop.cursors, &pointer); @@ -563,36 +564,13 @@ static void _ecore_evas_win32_resize(Ecore_Evas *ee, int width, int height) { INF("ecore evas resize (%dx%d)", width, height); - ee->req.w = width; - ee->req.h = height; - if ((ee->w != width) || (ee->h != height)) + if ((ee->req.w != width) || (ee->req.h != height)) { - ee->w = width; - ee->h = height; + ee->req.w = width; + ee->req.h = height; ecore_win32_window_resize((Ecore_Win32_Window *)ee->prop.window, width, height); - if (ECORE_EVAS_PORTRAIT(ee)) - { - evas_output_size_set(ee->evas, ee->w, ee->h); - evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); - } - else - { - evas_output_size_set(ee->evas, ee->h, ee->w); - evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); - } - if (ee->prop.avoid_damage) - { - int pdam; - - pdam = ecore_evas_avoid_damage_get(ee); - ecore_evas_avoid_damage_set(ee, 0); - ecore_evas_avoid_damage_set(ee, pdam); - } -/* if ((ee->shaped) || (ee->alpha)) */ -/* _ecore_evas_win32_region_border_resize(ee); */ - if (ee->func.fn_resize) ee->func.fn_resize(ee); } } @@ -1439,6 +1417,7 @@ _ecore_evas_win32_new_internal(int (*_ecore_evas_engine_backend_init)(Ecore_Evas ee->req.w = ee->w; ee->req.h = ee->h; ee->can_async_render = EINA_FALSE; + ee->draw_block = EINA_TRUE; ee->prop.max.w = 32767; ee->prop.max.h = 32767; --