static Evas_Object *__create_eo_conformant(Evas_Object *win);
static void __eo_win_rotation_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void __eo_win_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void __eo_win_update_size(callui_window_h window_h, callui_win_size_type_e size_type);
static callui_result_e __eo_win_set_rotation_locked(callui_window_h window_h, bool is_locked);
static void __eo_win_move_and_resize(callui_window_h window_h, bool force_resize)
{
- callui_app_data_t *ad = window_h->ad;
+ debug_enter();
int angle = elm_win_rotation_get(window_h->win);
- dbg("Window orientation changed [%d]", angle);
+ dbg("Window orientation angle [%d]", angle);
int win_h = window_h->win_h;
int win_w = window_h->win_w;
if (force_resize) {
evas_object_resize(window_h->win, 0, 0);
}
+
+ dbg("Resize window w[%d] h[%d]", win_w, win_h);
evas_object_resize(window_h->win, win_w, win_h);
int move_x = 0;
switch (angle) {
case 90:
if (_callui_common_is_mirrored_mode_on()) {
- move_y = ad->root_h - win_w - ACTIVE_NOTI_LANDSCAPE_L_PAD;
+ move_y = window_h->ad->root_h - win_w - ACTIVE_NOTI_LANDSCAPE_L_PAD;
} else {
move_y = ACTIVE_NOTI_LANDSCAPE_L_PAD;
}
break;
case 180:
- move_y = ad->root_h - win_h;
+ move_y = window_h->ad->root_h - win_h;
break;
case 270:
- move_x = ad->root_w - win_h;
+ move_x = window_h->ad->root_w - win_h;
if (_callui_common_is_mirrored_mode_on()) {
move_y = ACTIVE_NOTI_LANDSCAPE_L_PAD;
} else {
- move_y = ad->root_h - win_w - ACTIVE_NOTI_LANDSCAPE_L_PAD;
+ move_y = window_h->ad->root_h - win_w - ACTIVE_NOTI_LANDSCAPE_L_PAD;
}
break;
default:
break;
}
}
+ dbg("Move window to position x[%d] y[%d]", move_x, move_y);
evas_object_move(window_h->win, move_x, move_y);
+
+ debug_leave();
}
static void __eo_win_rotation_changed_cb(void *data, Evas_Object *obj, void *event_info)
{
+ debug_enter();
+
CALLUI_RETURN_IF_FAIL(data);
__eo_win_move_and_resize(data, true);
+
+ debug_leave();
+}
+
+static void __eo_win_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ debug_enter();
+
+ int x, y;
+ elm_win_screen_position_get(obj, &x, &y);
+ dbg("Window position x[%d] y[%d]", x, y);
+
+ debug_leave();
}
static Evas_Object *__create_eo_window(callui_window_h window_h)
elm_win_title_set(eo, _("IDS_CALL_BODY_CALL_M_APPLICATION_NAME"));
evas_object_smart_callback_add(eo, "wm,rotation,changed", __eo_win_rotation_changed_cb, window_h);
+ evas_object_event_callback_add(eo, EVAS_CALLBACK_MOVE, __eo_win_move_cb, NULL);
elm_win_center(eo, EINA_FALSE, EINA_FALSE);
elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
void __callui_window_deinit(callui_window_h window_h)
{
window_h->conformant = NULL;
+ evas_object_event_callback_del_full(window_h->win, EVAS_CALLBACK_MOVE, __eo_win_move_cb, NULL);
evas_object_smart_callback_del_full(window_h->win, "wm,rotation,changed", __eo_win_rotation_changed_cb, window_h);
DELETE_EVAS_OBJECT(window_h->win);
static void __eo_win_update_size(callui_window_h window_h, callui_win_size_type_e size_type)
{
- callui_app_data_t *ad = window_h->ad;
+ debug_enter();
window_h->size_type = size_type;
- window_h->win_w = ad->root_w;
+ window_h->win_w = window_h->ad->root_w;
switch (size_type) {
case CALLUI_WIN_SIZE_FULLSCREEN:
- window_h->win_h = ad->root_h;
+ window_h->win_h = window_h->ad->root_h;
break;
case CALLUI_WIN_SIZE_ACTIVE_NOTI:
window_h->win_h = CALLUI_WIN_ACT_NOTI_HEIGHT;
break;
}
__eo_win_move_and_resize(window_h, false);
+
+ debug_leave();
}
void _callui_window_set_size_type(callui_window_h window_h, callui_win_size_type_e size_type)