ev->states |= ECORE_WL2_WINDOW_STATE_MAXIMIZED;
win->req_config = win->def_config;
- win->pending.configure_event = EINA_TRUE;
+ win->pending.configure_event++;
ERR("[WINDOW] Generate WINDOW_CONFIGURE event.. win:%d, states:%d, geo(%d,%d,%dx%d), type:%d", win->resource_id, ev->states, ev->x, ev->y, ev->w, ev->h, size_type);
ecore_event_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE, ev, NULL, NULL);
ev->h = win->wm_rot.geometry_hints[i].h;
}
+ win->pending.configure_event++;
+
ecore_event_add(ECORE_WL2_EVENT_WINDOW_ROTATE, ev, NULL, NULL);
// TIZEN_ONLY(20170212): pend rotation until app set rotation
//this code don't need. This code will be added opensource code.
ev->angle = rot;
ev->resize = EINA_TRUE;
+ win->pending.configure_event++;
+
ecore_event_add(ECORE_WL2_EVENT_WINDOW_ROTATE, ev, NULL, NULL);
}
//
static void
-_ecore_evas_wl_common_resize_job(void *data)
+_ecore_evas_wl_common_resize_internal(Ecore_Evas *ee, int w, int h)
{
- Ecore_Evas *ee = data;
Ecore_Evas_Engine_Wl_Data *wdata;
int ow, oh, ew, eh;
int diff = 0;
if (!ee) return;
- int w = ee->expecting_resize.w;
- int h = ee->expecting_resize.h;
-
wdata = ee->engine.data;
if (!wdata) return;
- wdata->resize_job = NULL;
-
ee->req.w = w;
ee->req.h = h;
}
static void
+_ecore_evas_wl_common_resize_job(void *data)
+{
+ Ecore_Evas_Engine_Wl_Data *wdata;
+ Ecore_Evas *ee = data;
+
+ if (!ee) return;
+
+ wdata = ee->engine.data;
+ if (!wdata) return;
+
+ wdata->resize_job = NULL;
+ _ecore_evas_wl_common_resize_internal(ee, ee->expecting_resize.w, ee->expecting_resize.h);
+}
+
+static void
_ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
{
Ecore_Evas_Engine_Wl_Data *wdata;
wdata = ee->engine.data;
if (!wdata) return;
- if (wdata->win->pending.configure_event)
+ if (wdata->win->pending.configure_event > 0)
{
if (wdata->resize_job) ecore_job_del(wdata->resize_job);
wdata->resize_job = ecore_job_add(_ecore_evas_wl_common_resize_job, ee);
wdata = ee->engine.data;
if (!wdata) return ECORE_CALLBACK_PASS_ON;
- wdata->win->pending.configure_event = EINA_FALSE;
+ if (wdata->win->pending.configure_event > 0) wdata->win->pending.configure_event--;
if (!ecore_wl2_window_resizing_get(wdata->win) && !wdata->resizing)
wdata->cw = wdata->ch = 0;
if (ecore_wl2_window_resizing_get(wdata->win) || wdata->resizing)
{
if ((wdata->cw != nw) || (wdata->ch != nh))
- _ecore_evas_wl_common_resize(ee, nw, nh);
+ _ecore_evas_wl_common_resize_internal(ee, nw, nh);
wdata->cw = nw, wdata->ch = nh;
}
else
- _ecore_evas_wl_common_resize(ee, nw, nh);
+ _ecore_evas_wl_common_resize_internal(ee, nw, nh);
}
wdata->resizing = ecore_wl2_window_resizing_get(wdata->win);
wdata = ee->engine.data;
if (!wdata) return ECORE_CALLBACK_PASS_ON;
+ if (wdata->win->pending.configure_event > 0) wdata->win->pending.configure_event--;
+
if ((!ee->prop.wm_rot.supported) || (!ee->prop.wm_rot.app_set))
return ECORE_CALLBACK_PASS_ON;
{
if ((ee->w != nw) || (ee->h != nh))
{
- _ecore_evas_wl_common_resize(ee, nw, nh);
+ _ecore_evas_wl_common_resize_internal(ee, nw, nh);
}
}
ecore_evas_size_base_set(ee, basew, baseh);
ecore_evas_size_step_set(ee, stepw, steph);
- _ecore_evas_wl_common_resize(ee, w, h);
+ _ecore_evas_wl_common_resize_internal(ee, w, h);
if (ee->prop.wm_rot.manual_mode.set)
{