EAPI void ecore_wl_window_aux_hint_del(Ecore_Wl_Window *win, int id);
EAPI void ecore_wl_window_floating_mode_set(Ecore_Wl_Window *win, Eina_Bool floating);
+EAPI void ecore_wl_window_geometry_get(Ecore_Wl_Window *win, int *x, int *y, int *w, int *h);
#ifdef __cplusplus
}
win->surface);
}
}
+
+EAPI void
+ecore_wl_window_geometry_get(Ecore_Wl_Window *win, int *x, int *y, int *w, int *h)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ if (!win) return;
+
+ if (x) *x = win->allocation.x;
+ if (y) *y = win->allocation.y;
+ if (w) *w = win->configured.w;
+ if (h) *h = win->configured.h;
+}
Ecore_Evas *ee;
Ecore_Evas_Engine_Wl_Data *wdata;
Ecore_Wl_Event_Window_Configure *ev;
- int nw = 0, nh = 0;
+ int nx = 0, ny = 0, nw = 0, nh = 0;
Eina_Bool prev_max, prev_full;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ee->prop.maximized = ecore_wl_window_maximized_get(wdata->win);
ee->prop.fullscreen = ecore_wl_window_fullscreen_get(wdata->win);
- nw = ev->w;
- nh = ev->h;
+ ecore_wl_window_geometry_get(wdata->win, &nx, &ny, &nw, &nh);
if (nw < 1) nw = 1;
if (nh < 1) nh = 1;
if (ee->prop.fullscreen)
{
- _ecore_evas_wl_common_move(ee, ev->x, ev->y);
+ _ecore_evas_wl_common_move(ee, nx, ny);
_ecore_evas_wl_common_resize(ee, nw, nh);
if (prev_full != ee->prop.fullscreen)
return ECORE_CALLBACK_PASS_ON;
}
- if ((ee->x != ev->x) || (ee->y != ev->y))
- _ecore_evas_wl_common_move(ee, ev->x, ev->y);
+ if ((ee->x != nx) || (ee->y != ny))
+ _ecore_evas_wl_common_move(ee, nx, ny);
if ((ee->req.w != nw) || (ee->req.h != nh))
_ecore_evas_wl_common_resize(ee, nw, nh);