diff options
author | Rafael Antognolli <rafael.antognolli@intel.com> | 2013-04-24 18:33:43 -0300 |
---|---|---|
committer | Rafael Antognolli <rafael.antognolli@intel.com> | 2013-04-25 19:58:03 -0300 |
commit | 1ec6dd5fbc2968b6c06cca8a67b871da51222681 (patch) | |
tree | 6b397a6cc0037a99b9beec02498f778156fe6cae | |
parent | 455d8790b9d80430f5ea6a96dd213fbc3c03492f (diff) | |
download | efl-1ec6dd5fbc2968b6c06cca8a67b871da51222681.tar.gz |
evas/wayland_egl: Fix resize to the left or top when rotated.
-rw-r--r-- | src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 11 | ||||
-rw-r--r-- | src/modules/evas/engines/wayland_egl/evas_engine.c | 27 |
2 files changed, 28 insertions, 10 deletions
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index fb8d19a223..9c45bf7270 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -491,7 +491,16 @@ _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location) wdata->win->resizing = EINA_TRUE; evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); - ecore_wl_window_resize(wdata->win, ee->w + fw, ee->h + fh, location); + if ((ee->rotation == 0) || (ee->rotation == 180)) + { + ecore_wl_window_resize(wdata->win, ee->w + fw, ee->h + fh, location); + ecore_wl_window_update_size(wdata->win, ee->w + fw, ee->h + fh); + } + else + { + ecore_wl_window_resize(wdata->win, ee->w + fh, ee->h + fw, location); + ecore_wl_window_update_size(wdata->win, ee->w + fh, ee->h + fw); + } } } #endif diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index 56cac55889..5f6b31ded3 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -881,21 +881,30 @@ eng_output_resize(void *data, int w, int h) if (re->win->win) { - int aw, ah, dx, dy; + int aw, ah, dx = 0, dy = 0; - wl_egl_window_get_attached_size(re->win->win, &aw, &ah); + if ((re->win->rot == 90) || (re->win->rot == 270)) + wl_egl_window_get_attached_size(re->win->win, &ah, &aw); + else + wl_egl_window_get_attached_size(re->win->win, &aw, &ah); if (re->info->info.edges & 4) // resize from left - dx = aw - w; - else - dx = 0; + { + if ((re->win->rot == 90) || (re->win->rot == 270)) + dx = ah - h; + else + dx = aw - w; + } if (re->info->info.edges & 1) // resize from top - dy = ah - h; - else - dy = 0; + { + if ((re->win->rot == 90) || (re->win->rot == 270)) + dy = aw - w; + else + dy = ah - h; + } if ((re->win->rot == 90) || (re->win->rot == 270)) - wl_egl_window_resize(re->win->win, h, w, dy, dx); + wl_egl_window_resize(re->win->win, h, w, dx, dy); else wl_egl_window_resize(re->win->win, w, h, dx, dy); } |