aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristopher Michael <cp.michael@samsung.com>2013-02-05 14:14:17 +0000
committerRafael Antognolli <rafael.antognolli@linux.intel.com>2013-02-19 10:18:02 -0300
commitb717e948af7f379b6c649b15efb722ca08e4bece (patch)
treed901f04ff36461bc9f44675a7e7a94463a9e150e /src
parentc95160baae1b3de83f9e204c96fed07edd08b6a2 (diff)
downloadefl-b717e948af7f379b6c649b15efb722ca08e4bece.tar.gz
efl-b717e948af7f379b6c649b15efb722ca08e4bece.tar.xz
efl-b717e948af7f379b6c649b15efb722ca08e4bece.zip
Fix new shm engine to take resize edges into account.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 75d3e97b6..6105863bc 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -297,7 +297,34 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
evas_object_resize(wdata->frame, w, h);
if (wdata->win)
- ecore_wl_window_update_size(wdata->win, w, h);
+ {
+ Ecore_Wl_Window *win;
+ Evas_Coord x = 0, y = 0;
+ Evas_Engine_Info_Wayland_Shm *einfo;
+
+ win = wdata->win;
+ if (win->surface)
+ {
+ if (win->edges & 4)
+ x = win->server_allocation.w - win->allocation.w;
+ if (win->edges & 1)
+ y = win->server_allocation.h - win->allocation.h;
+ }
+
+ win->edges = 0;
+
+ if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
+ {
+ printf("Setting Resize Edges: %d %d\n", x, y);
+ einfo->info.edges.x = x;
+ einfo->info.edges.y = y;
+ if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
+ ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
+ }
+
+ win->server_allocation = win->allocation;
+ ecore_wl_window_update_size(wdata->win, w, h);
+ }
if (ee->func.fn_resize) ee->func.fn_resize(ee);
}