diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c index ec21871606..4de62e8e79 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c @@ -72,7 +72,7 @@ static void _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha); static void _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent); static int _ecore_evas_wl_render(Ecore_Evas *ee); static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h); - +static void _ecore_evas_wl_screen_dpi_get(const Ecore_Evas *ee __UNUSED__, int *xdpi, int *ydpi); static Eina_Bool _ecore_evas_wl_cb_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event); static Eina_Bool _ecore_evas_wl_cb_mouse_out(void *data __UNUSED__, int type __UNUSED__, void *event); static Eina_Bool _ecore_evas_wl_cb_focus_in(void *data __UNUSED__, int type __UNUSED__, void *event); @@ -831,6 +831,21 @@ _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int ecore_wl_screen_size_get(w, h); } +static void +_ecore_evas_wl_screen_dpi_get(const Ecore_Evas *ee __UNUSED__, int *xdpi, int *ydpi) +{ + int dpi = 0; + + LOGFN(__FILE__, __LINE__, __FUNCTION__); + + if (xdpi) *xdpi = 0; + if (ydpi) *ydpi = 0; + /* FIXME: Ideally this needs to get the DPI from a specific screen */ + dpi = ecore_wl_dpi_get(); + if (xdpi) *xdpi = dpi; + if (ydpi) *ydpi = dpi; +} + void _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location) { @@ -946,8 +961,8 @@ _ecore_evas_wl_cb_window_configure(void *data __UNUSED__, int type __UNUSED__, v if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; if ((ee->x != ev->x) || (ee->y != ev->y)) { - ee->x = ev->x; - ee->y = ev->y; + /* ee->x = ev->x; */ + /* ee->y = ev->y; */ ee->req.x = ee->x; ee->req.y = ee->y; if (ee->func.fn_move) ee->func.fn_move(ee); diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c index 4734338c39..a05ecfe2c6 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c @@ -73,6 +73,7 @@ static void _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha); static void _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent); static int _ecore_evas_wl_render(Ecore_Evas *ee); static void _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int *y, int *w, int *h); +static void _ecore_evas_wl_screen_dpi_get(const Ecore_Evas *ee __UNUSED__, int *xdpi, int *ydpi); static void _ecore_evas_wl_ensure_pool_size(Ecore_Evas *ee, int w, int h); static struct wl_shm_pool *_ecore_evas_wl_shm_pool_create(int size, void **data); @@ -157,7 +158,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func = NULL, // focus skip set _ecore_evas_wl_render, _ecore_evas_wl_screen_geometry_get, - NULL // screen_dpi_get + _ecore_evas_wl_screen_dpi_get }; /* external variables */ @@ -517,9 +518,9 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h) if (ee->engine.wl.win) { + ecore_wl_window_update_size(ee->engine.wl.win, w, h); ecore_wl_window_buffer_attach(ee->engine.wl.win, ee->engine.wl.buffer, 0, 0); - ecore_wl_window_update_size(ee->engine.wl.win, w, h); } if (ee->func.fn_resize) ee->func.fn_resize(ee); @@ -905,6 +906,21 @@ _ecore_evas_wl_screen_geometry_get(const Ecore_Evas *ee __UNUSED__, int *x, int ecore_wl_screen_size_get(w, h); } +static void +_ecore_evas_wl_screen_dpi_get(const Ecore_Evas *ee __UNUSED__, int *xdpi, int *ydpi) +{ + int dpi = 0; + + LOGFN(__FILE__, __LINE__, __FUNCTION__); + + if (xdpi) *xdpi = 0; + if (ydpi) *ydpi = 0; + /* FIXME: Ideally this needs to get the DPI from a specific screen */ + dpi = ecore_wl_dpi_get(); + if (xdpi) *xdpi = dpi; + if (ydpi) *ydpi = dpi; +} + static struct wl_shm_pool * _ecore_evas_wl_shm_pool_create(int size, void **data) {