/* local variables */
static int _ecore_evas_wl_init_count = 0;
static Ecore_Event_Handler *_ecore_evas_wl_event_hdls[10];
+static Eina_Bool _enable_uniconify_force_render = EINA_FALSE;
static void _ecore_evas_wayland_resize(Ecore_Evas *ee, int location);
return ECORE_CALLBACK_PASS_ON;
}
+static void
+_ecore_evas_wl_common_damage_add(Ecore_Evas *ee)
+{
+ if ((!_enable_uniconify_force_render) ||
+ (ee->prop.iconified))
+ return;
+
+ /* add canvas damage
+ * redrawing canvas is necessary if evas engine destroy the buffer.
+ */
+ evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
+}
+
static Eina_Bool
_ecore_evas_wl_common_cb_window_iconify_change(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
{
if (wdata && ev->force)
ecore_wl_window_iconify_state_update(wdata->win, ev->iconified, EINA_FALSE);
_ecore_evas_wl_common_state_update(ee);
+
+ _ecore_evas_wl_common_damage_add(ee);
+
return ECORE_CALLBACK_PASS_ON;
}
ecore_event_evas_init();
+ if (getenv("EVAS_SHM_FLUSH"))
+ _enable_uniconify_force_render = EINA_TRUE;
+
return _ecore_evas_wl_init_count;
}
wdata = ee->engine.data;
ecore_wl_window_iconified_set(wdata->win, on);
_ecore_evas_wl_common_state_update(ee);
+
+ _ecore_evas_wl_common_damage_add(ee);
}
static void