diff options
-rw-r--r-- | src/manager.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c index 301f384..0a1a336 100644 --- a/src/manager.c +++ b/src/manager.c @@ -231,6 +231,34 @@ func_out: } #endif +static enum ug_event __ug_evas_rotation_get(Evas_Object *win) +{ + + int angle = elm_win_rotation_get(win); + enum ug_event func_ret; + + _DBG("win angle : %d", angle); + + switch (angle) { + case 0: + func_ret = UG_EVENT_ROTATE_PORTRAIT; + break; + case 90: + func_ret = UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN; + break; + case 180: + func_ret = UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN; + break; + case 270: + func_ret = UG_EVENT_ROTATE_LANDSCAPE; + break; + default: + func_ret = UG_EVENT_ROTATE_PORTRAIT; + break; + } + return func_ret; +} + static void ugman_tree_dump(ui_gadget_h ug) { static int i; @@ -583,6 +611,8 @@ static int ugman_ug_create(void *data) if (ug_man.last_rotate_evt == UG_EVENT_NONE) { #ifndef UG_WAYLAND ug_man.last_rotate_evt = __ug_x_rotation_get(ug_man.disp, ug_man.win_id); +#else + ug_man.last_rotate_evt = __ug_evas_rotation_get((Evas_Object *)ug_man.win); #endif } ugman_ug_event(ug, ug_man.last_rotate_evt); |