From 0742a6c78eb34373842e3927e832e733bdc7e293 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Sat, 10 Oct 2020 13:56:03 +0100 Subject: [PATCH] Ecore_Evas win32 module: do not set evas viewport size to 0 Summary: When a window is iconified, its size is 0x0 and is passed to evas viewport. Set the size to 1x1 in that case Test Plan: Elementary "windows states" test Reviewers: raster, jpcordovae, felipealmeida, jptiz Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12171 --- .../engines/win32/ecore_evas_win32.c | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 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 debb7f263c..4f2f5c3d6e 100644 --- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c +++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c @@ -54,6 +54,8 @@ #define ECORE_EVAS_EVENT_COUNT 11 +#define EE_SZ(sz_) (ee->sz_ == 0) ? 1 : (ee->sz_) + static int _ecore_evas_init_count = 0; static Ecore_Event_Handler *ecore_evas_event_handlers[ECORE_EVAS_EVENT_COUNT]; @@ -374,13 +376,13 @@ _ecore_evas_win32_event_window_configure(void *data EINA_UNUSED, int type EINA_U 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); + evas_output_size_set(ee->evas, EE_SZ(w), EE_SZ(h)); + evas_output_viewport_set(ee->evas, 0, 0, EE_SZ(w), EE_SZ(h)); } else { - evas_output_size_set(ee->evas, ee->h, ee->w); - evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); + evas_output_size_set(ee->evas, EE_SZ(h), EE_SZ(w)); + evas_output_viewport_set(ee->evas, 0, 0, EE_SZ(h), EE_SZ(w)); } if (ee->prop.avoid_damage) { @@ -603,13 +605,13 @@ _ecore_evas_win32_move_resize(Ecore_Evas *ee, int x, int y, int width, int heigh x, y, 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); + evas_output_size_set(ee->evas, EE_SZ(w), EE_SZ(h)); + evas_output_viewport_set(ee->evas, 0, 0, EE_SZ(w), EE_SZ(h)); } else { - evas_output_size_set(ee->evas, ee->h, ee->w); - evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); + evas_output_size_set(ee->evas, EE_SZ(h), EE_SZ(w)); + evas_output_viewport_set(ee->evas, 0, 0, EE_SZ(h), EE_SZ(w)); } if (ee->prop.avoid_damage) { @@ -668,13 +670,13 @@ _ecore_evas_win32_rotation_set_internal(Ecore_Evas *ee, int rotation) h, w); 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); + evas_output_size_set(ee->evas, EE_SZ(w), EE_SZ(h)); + evas_output_viewport_set(ee->evas, 0, 0, EE_SZ(w), EE_SZ(h)); } else { - evas_output_size_set(ee->evas, ee->h, ee->w); - evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); + evas_output_size_set(ee->evas, EE_SZ(h), EE_SZ(w)); + evas_output_viewport_set(ee->evas, 0, 0, EE_SZ(h), EE_SZ(w)); } if (ee->func.fn_resize) ee->func.fn_resize(ee); }