summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafael Antognolli <rafael.antognolli@intel.com>2013-04-24 19:32:49 -0300
committerRafael Antognolli <rafael.antognolli@intel.com>2013-04-25 19:58:05 -0300
commit6890a0e4520d6d289fcb8a00e89aee435b4ac72c (patch)
tree198b6e1acd4dd683896743e1a458f24a0223bf9a /src
parent1ec6dd5fbc2968b6c06cca8a67b871da51222681 (diff)
evas/wayland_shm: Fix resize to the left or top when rotated.
Diffstat (limited to 'src')
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c10
-rw-r--r--src/modules/evas/engines/wayland_shm/evas_engine.c10
2 files changed, 15 insertions, 5 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 3070697..31adbd7 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
@@ -526,15 +526,19 @@ _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
526 Evas_Engine_Info_Wayland_Shm *einfo; 526 Evas_Engine_Info_Wayland_Shm *einfo;
527 wdata->win->resizing = EINA_TRUE; 527 wdata->win->resizing = EINA_TRUE;
528 528
529 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas))) 529 if ((ee->rotation == 90) || (ee->rotation == 270))
530 einfo->info.edges = wdata->win->edges; 530 evas_output_framespace_get(ee->evas, NULL, NULL, &fh, &fw);
531 else
532 evas_output_framespace_get(ee->evas, NULL, NULL, &fh, &fw);
531 533
532 evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); 534 if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
533 if ((ee->rotation == 90) || (ee->rotation == 270)) 535 if ((ee->rotation == 90) || (ee->rotation == 270))
534 ecore_wl_window_resize(wdata->win, ee->w + fh, ee->h + fw, location); 536 ecore_wl_window_resize(wdata->win, ee->w + fh, ee->h + fw, location);
535 else 537 else
536 ecore_wl_window_resize(wdata->win, ee->w + fw, ee->h + fh, location); 538 ecore_wl_window_resize(wdata->win, ee->w + fw, ee->h + fh, location);
537 539
540 einfo->info.edges = location;
541
538 } 542 }
539} 543}
540#endif 544#endif
diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c b/src/modules/evas/engines/wayland_shm/evas_engine.c
index 9974ca2..5bbc478 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.c
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.c
@@ -326,9 +326,15 @@ eng_output_resize(void *data, int w, int h)
326 if (!(info = re->info)) return; 326 if (!(info = re->info)) return;
327 327
328 if (info->info.edges & 4) 328 if (info->info.edges & 4)
329 dx = re->ob->w - w; 329 if ((info->info.rotation == 90) || (info->info.rotation == 270))
330 dx = re->ob->h - h;
331 else
332 dx = re->ob->w - w;
330 if (info->info.edges & 1) 333 if (info->info.edges & 1)
331 dy = re->ob->h - h; 334 if ((info->info.rotation == 90) || (info->info.rotation == 270))
335 dy = re->ob->w - w;
336 else
337 dy = re->ob->h - h;
332 338
333 re->outbuf_reconfigure(re->ob, dx, dy, w, h, 339 re->outbuf_reconfigure(re->ob, dx, dy, w, h,
334 info->info.rotation, info->info.depth, 340 info->info.rotation, info->info.depth,