merge with master
authorJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:04:12 +0000 (01:04 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:04:12 +0000 (01:04 +0900)
12 files changed:
composer/include/msg-ui-composer-bubble.h
composer/include/msg-ui-composer-main.h
composer/src/bubble/msg-ui-composer-bubble-list.c
composer/src/external/msg-ui-composer-external.c
composer/src/gadget/msg-ui-composer-gadget.c
composer/src/ui-composer/msg-ui-composer-main.c
main/message.c
packaging/org.tizen.message.spec
thread/src/msg-ui-thread-callback.c
thread/src/msg-ui-thread-main.c
thread/src/msg-ui-thread-util.c
viewer/theme/msg_viewer.edc

index c2ed392..caf2cdb 100755 (executable)
@@ -195,6 +195,7 @@ typedef struct _MSG_BUBBLE_DATA {
        Eina_List *chk_list;
        Eina_List *added_list;
        Eina_List *media_list;
+       Eina_List *date_line_list;
 
        Eina_Bool sel_all_checked;
 
index 73f712b..9f0ae0a 100755 (executable)
 #include "msg-ui-composer-data.h"
 #include "msg-ui-composer-util.h"
 
+int msg_ui_composer_get_ref_count(void);
+void msg_ui_composer_increase_ref_count(void);
+void msg_ui_composer_decrease_ref_count(void);
+
 COMPOSER_RETURN_TYPE_E msg_ui_composer_init(MSG_COMPOSER_VIEW_DATA_S *cd);
 COMPOSER_RETURN_TYPE_E msg_ui_composer_create(MSG_COMPOSER_VIEW_DATA_S *cd);
 COMPOSER_RETURN_TYPE_E msg_ui_composer_start(MSG_COMPOSER_VIEW_DATA_S *cd, service_h svc_handle);
index d526878..1eaafeb 100755 (executable)
@@ -1829,9 +1829,12 @@ Eina_Bool msg_ui_bubble_item_load_cb(void *data)
                        elm_object_part_text_set(layout, "elm.text.date", item_data->displayDate);
                        evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                        evas_object_size_hint_align_set(layout,EVAS_HINT_FILL,EVAS_HINT_FILL);
+
+                       evas_object_data_set(layout, "bubble_info", item_data);
                        evas_object_show(layout);
 
                        elm_box_pack_start(bubble_data->box, layout);
+                       bubble_data->date_line_list = eina_list_append(bubble_data->date_line_list, layout);
                }
 
                bubble_data->realized_list = eina_list_append(bubble_data->realized_list, item_data);
@@ -2031,9 +2034,27 @@ Eina_Bool msg_ui_bubble_item_add_cb(void *data)
        elm_scroller_gravity_set(bubble_data->scrl, 0.0, 1.0);
 
        if (pack_info) {
+               PMSG_APP_CONV_DATA_S prev_data = NULL;
+               prev_data = (PMSG_APP_CONV_DATA_S) eina_list_nth(bubble_data->realized_list, 0);
+
+               if((!prev_data || g_strcmp0(prev_data->displayDate, pack_info->add_item->displayDate) != 0)) {
+                       Evas_Object * layout = NULL;
+                       layout = elm_layout_add(bubble_data->box);
+                       elm_layout_file_set(layout, MSGC_UI_DEFAULT_EDJ, "composer/content/bubble/date_line");
+                       elm_object_part_text_set(layout, "elm.text.date", pack_info->add_item->displayDate);
+                       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_size_hint_align_set(layout,EVAS_HINT_FILL,EVAS_HINT_FILL);
+
+                       evas_object_data_set(layout, "bubble_info", pack_info->add_item);
+                       evas_object_show(layout);
+
+                       elm_box_pack_end(bubble_data->box, layout);
+                       bubble_data->date_line_list = eina_list_prepend(bubble_data->date_line_list, layout);
+               }
+
                __add_bubble_item(bubble_data, pack_info->add_item, pack_info->pack_type, pack_info->rel_obj);
 
-               bubble_data->realized_list = eina_list_append(bubble_data->realized_list, pack_info->add_item);
+               bubble_data->realized_list = eina_list_prepend(bubble_data->realized_list, pack_info->add_item);
 
                bubble_data->added_list = eina_list_remove(bubble_data->added_list, pack_info);
 
@@ -2112,6 +2133,7 @@ void msg_ui_bubble_list_item_move(PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg
        MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, !bubble_data);
 
        int msg_id = 0;
+       Evas_Object *date_line_layout = NULL;
        PMSG_APP_CONV_DATA_S prev_data = NULL;
        PMSG_APP_CONV_DATA_S insert_data = NULL;
        BUBBLE_PACK_INFO *add_pack_info = NULL;
@@ -2133,9 +2155,34 @@ void msg_ui_bubble_list_item_move(PMSG_BUBBLE_DATA bubble_data, msg_struct_t msg
                if (prev_data) {
                        if (prev_data->msgId == msg_id) {
                                if (eina_list_data_find(bubble_data->realized_list, (const void *)prev_data)) {
+                                       EINA_LIST_FOREACH(bubble_data->date_line_list, l, date_line_layout) {
+                                               if (date_line_layout) {
+                                                       PMSG_APP_CONV_DATA_S bubble_info = NULL;
+                                                       PMSG_APP_CONV_DATA_S next_bubble = NULL;
+                                                       bubble_info = (PMSG_APP_CONV_DATA_S)evas_object_data_get(date_line_layout, "bubble_info");
+
+                                                       if (bubble_info && (bubble_info == prev_data)) {
+                                                               Eina_List *temp_list = NULL;
+                                                               temp_list = eina_list_data_find_list(bubble_data->realized_list, prev_data);
+                                                               temp_list = eina_list_prev(temp_list);
+                                                               next_bubble = (PMSG_APP_CONV_DATA_S)eina_list_nth(temp_list, 0);
+
+                                                               if (!next_bubble || (g_strcmp0(next_bubble->displayDate, bubble_info->displayDate) != 0)) {
+                                                                       bubble_data->date_line_list = eina_list_remove(bubble_data->date_line_list, date_line_layout);
+                                                                       elm_box_unpack(bubble_data->box, date_line_layout);
+                                                                       evas_object_del(date_line_layout);
+                                                               } else {
+                                                                       evas_object_data_del(date_line_layout, "bubble_info");
+                                                                       evas_object_data_set(date_line_layout, "bubble_info", next_bubble);
+                                                               }
+                                                               break;
+                                                       }
+                                               }
+                                       }
                                        elm_box_unpack(bubble_data->box, prev_data->ly);
                                        evas_object_hide(prev_data->ly);
                                        evas_object_del(prev_data->ly);
+                                       elm_box_recalculate(bubble_data->box);
 
                                        bubble_data->realized_list = eina_list_remove(bubble_data->realized_list, (const void *)prev_data);
                                }
index 19d2ade..49a78e0 100755 (executable)
@@ -423,11 +423,12 @@ static void __ug_memo_result_cb(ui_gadget_h ug, service_h result, void *priv)
 {
        D_ENTER;
 
-       MSG_COMPOSER_VIEW_DATA_S *cd = priv;
-       Evas_Object *entry;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)priv;
+       Evas_Object *entry = NULL;
        char *str = NULL;
        char *tmp_memo = NULL;
-       char buf[DEF_BUF_LEN_S] = { 0, };
+       char *memo_image = NULL;
+       char buf[DEF_BUF_LEN_S + 1] = {0, };
        int img_count = 0;
        int txt_count = 0;
        int i;
@@ -437,26 +438,26 @@ static void __ug_memo_result_cb(ui_gadget_h ug, service_h result, void *priv)
                return;
        }
 
-       if (service_get_extra_data(result, MSG_BUNDLE_KEY_PATH, &str) == SERVICE_ERROR_NONE) {
-               gchar **split_str = NULL;
-
-               split_str = g_strsplit_set(str, "\n", -1);
+       if (service_get_extra_data(result, MSG_BUNDLE_KEY_IMAGE, &str) == SERVICE_ERROR_NONE) {
+               if (str)
+                       img_count = atoi(str);
+       }
 
-               if (split_str) {
-                       int count = g_strv_length(split_str);
+       D_MSG("[MEMO] attach image count : %d", img_count);
 
-                       for (i = 0; i < count; i++) {
-                               if (split_str[i] && strlen(split_str[i])) {
-                                       D_MSG("%dth split_str = (%s)", i, split_str[i]);
-                                       cd->attachlist = eina_list_append(cd->attachlist, g_strdup(split_str[i]));
-                               }
+       /* if image memo then attach image */
+       if (img_count > 0) {
+               for (i = 1; i <= img_count; i++) {
+                       snprintf(buf, sizeof(buf)-1, "image%d", i);
+                       if (service_get_extra_data(result, buf, &memo_image) == SERVICE_ERROR_NONE) {
+                               if (memo_image)
+                                       cd->attachlist = eina_list_append(cd->attachlist, g_strdup(memo_image));
                        }
-
-                       g_strfreev(split_str);
                }
-
        }
 
+       str = NULL;
+
        if (service_get_extra_data(result, MSG_BUNDLE_KEY_TEXT, &str) == SERVICE_ERROR_NONE) {
                if (str)
                        txt_count = atoi(str);
@@ -469,7 +470,7 @@ static void __ug_memo_result_cb(ui_gadget_h ug, service_h result, void *priv)
                COMPOSER_RECP_ADDR_E recp_type = msg_ui_composer_recipient_addr_type_get(cd->recipient);
 
                for (i = 1; i <= txt_count; i++) {
-                       charmemo_str = NULL;
+                       char *memo_str = NULL;
                        snprintf(buf, sizeof(buf)-1, "text%d", i);
 
                        service_get_extra_data(result, buf, &tmp_memo);
index e86e592..d99cde7 100755 (executable)
 #define UG_MODULE_API  __attribute__ ((visibility("default")))
 #endif
 
+int ref_count;
+
+int msg_ui_composer_get_ref_count(void)
+{
+       D_MSG("ref_count = %d", ref_count);
+       return ref_count;
+}
+
+void msg_ui_composer_increase_ref_count(void)
+{
+       ++ref_count;
+       D_MSG("ref_count = %d", ref_count);
+}
+
+void msg_ui_composer_decrease_ref_count(void)
+{
+       --ref_count;
+       D_MSG("ref_count = %d", ref_count);
+
+       if (ref_count < 0)
+               ref_count = 0;
+}
+
 static void __base_layout_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
        D_ENTER;
@@ -173,6 +196,9 @@ static void *__msg_ui_composer_on_create(ui_gadget_h ug, enum ug_mode mode, serv
                return NULL;
        }
 
+       if (cd->base)
+               msg_ui_composer_increase_ref_count();
+
        return cd->base;
 }
 
index 3c98b6a..0fc0a16 100755 (executable)
@@ -1195,8 +1195,10 @@ static void __msg_composer_auto_save_and_delete_msg(MSG_COMPOSER_VIEW_DATA_S *cd
 COMPOSER_RETURN_TYPE_E msg_ui_composer_destroy(MSG_COMPOSER_VIEW_DATA_S *cd)
 {
        D_ENTER;
-
        COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+
+       msg_ui_composer_decrease_ref_count();
+
        if (!cd)
                return COMPOSER_RETURN_FAIL;
 
@@ -1280,7 +1282,8 @@ COMPOSER_RETURN_TYPE_E msg_ui_composer_destroy(MSG_COMPOSER_VIEW_DATA_S *cd)
        }
 
        /* rollback indicator mode to previous mode */
-       elm_win_indicator_mode_set(cd->main_window, cd->indicator_mode);
+       if (msg_ui_composer_get_ref_count() <= 0)
+               elm_win_indicator_mode_set(cd->main_window, cd->indicator_mode);
 
        D_PRINT("===== Composer UG Destroy End =====");
 
index 661040d..119637d 100755 (executable)
@@ -694,6 +694,7 @@ void result_cb(ui_gadget_h ug, service_h result, void *priv)
        pListData = msg_ui_thread_get_current_list();
 
        if (!g_strcmp0(str_result, MSG_BUNDLE_VALUE_DEL_ALL)) {
+               elm_object_focus_set(pListData->genlist, EINA_TRUE);
                ug_destroy(ug);
 
                if (pListData) {
@@ -763,8 +764,14 @@ void destroy_cb(ui_gadget_h ug, void *priv)
 
        struct appdata *ad = (struct appdata *)priv;
        int ug_type = ad->ug_type;
+       PMSG_THREAD_LIST_DATA pListData = NULL;
+
+       pListData = msg_ui_thread_get_current_list();
 
        if (ug == ad->composer_ug) {
+               if (pListData && pListData->genlist)
+                       elm_object_focus_set(pListData->genlist, EINA_TRUE);
+
                ug_destroy(ug);
                ad->composer_ug = NULL;
                ad->ug_type = MSG_COMPOSER_UG_TYPE_NONE;
@@ -772,9 +779,6 @@ void destroy_cb(ui_gadget_h ug, void *priv)
 
        if (ad->layout_main) {
                PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)ad->thread_data;
-               PMSG_THREAD_LIST_DATA pListData = NULL;
-
-               pListData = msg_ui_thread_get_current_list();
                if (pListData == NULL) {
                        elm_exit();
                        return;
index cf33dc6..9ba312c 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       org.tizen.message
 Summary:    message application
-Version:    0.8.44
+Version:    0.8.45
 Release:    1
 Group:      devel
 License:    Samsung
@@ -92,6 +92,13 @@ ln -sf /usr/bin/ug-client /usr/ug/bin/msg-composer-efl
 /usr/share/icons/default/small/*.png
 
 %changelog
+* Sat Feb 16 2013 Jaeyun Jeong <jyjeong@samsung.com>
+- N_SE-25398 : Fix lags on entering SMIL player.
+- Fix N_SE-25203: bubble position issue & date_line issue.
+- Fix N_SE-25242, N_SE-25243, N_SE-25248. Show normal view on horizontal edit mode.
+- Fix N_SE-25254, splitview composer indicator issue, ref_count is applied in composer.
+- Fix N_SE-25224, drawing memo inserting issue.
+
 * Mon Feb 12 2013 Jaeyun Jeong <jyjeong@samsung.com>
 - Fix N_SE-24797. Hide toolbar on horizontal search mode.
 - Fix N_SE-24783. Cancel search mode after delete message.
@@ -138,6 +145,11 @@ ln -sf /usr/bin/ug-client /usr/ug/bin/msg-composer-efl
 - Fix N_SE-22522, uri of filepath is supported.
 
 * Mon Jan 21 2013 Jaeyun Jeong <jyjeong@samsung.com>
+- Change license URL from "tizenopensource.org" to "floralicense.org".
+- Change enum value related with SESSION policy in MMFW.
+  (It is re-submitted because of invalid tag.)
+
+* Mon Jan 21 2013 Jaeyun Jeong <jyjeong@samsung.com>
 - Apply EFL API changes.
 - Change elm_scale_get to elm_config_scale_get of composer.
 - Change name of deprecated api elm_scale_get() to elm_config_scale_get().
index 5ac529c..98c46ab 100755 (executable)
@@ -352,8 +352,6 @@ static void __msg_ui_thread_multi_action_finish(PMSG_THREAD_LIST_DATA pListData)
        pListData->action_type = THREAD_ACTION_NONE;
        pListData->include_protected_msg = false;
 
-       msg_ui_thread_show_normal_mode(pListData);
-
        if (pListData->list_type == THREAD_NORMAL_LIST_TYPE) {
                msg_ui_thread_list_load(pListData, FALSE);
        } else {
@@ -364,6 +362,8 @@ static void __msg_ui_thread_multi_action_finish(PMSG_THREAD_LIST_DATA pListData)
                if (pDefaultListData)
                        msg_ui_thread_list_load(pDefaultListData, FALSE); //might be changed
        }
+
+       msg_ui_thread_show_normal_mode(pListData);
 }
 
 void msg_ui_thread_ctlbar_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
index b786349..e89d534 100755 (executable)
@@ -957,10 +957,12 @@ void msg_ui_thread_split_view_show(PMSG_THREAD_DATA pData)
 
        PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
 
-       elm_panes_content_left_size_set(pData->panes, 0.4);
+       if (pListData && pListData->view_mode == THREAD_NORMAL_VIEW) {
+               elm_panes_content_left_size_set(pData->panes, 0.4);
+               elm_object_signal_emit(pData->panes, "elm,panes,pair", "");
 
-       if (pListData) {
-               if (pListData->view_mode == THREAD_NORMAL_VIEW && pListData->item_cnt > 0) {
+
+               if (pListData->item_cnt > 0) {
                        edje_object_signal_emit(_EDJ(pListData->content_ly), "show_searchbar", "sel_all");
                        evas_object_show(pListData->searchbar);
                        elm_object_part_content_set(pListData->content_ly, "sel_all", pListData->searchbar);
@@ -988,15 +990,14 @@ void msg_ui_thread_split_view_show(PMSG_THREAD_DATA pData)
                        }
 
                        if (pData->detail_layout) {
-                               elm_naviframe_item_pop(pData->navi_frame);
+                               elm_object_item_del(elm_naviframe_top_item_get(pData->navi_frame));
                                pData->detail_layout = NULL;
                                if (pListData->sel_gen_item > 0)
                                        msg_ui_thread_launch_msg_detail_view(pListData, elm_object_item_data_get(pListData->sel_gen_item));
                        }
                }
        }
-
-       elm_object_signal_emit(pData->panes, "elm,panes,pair", "");
+       D_LEAVE;
 }
 
 void msg_ui_thread_split_view_hide(PMSG_THREAD_DATA pData)
@@ -1005,29 +1006,31 @@ void msg_ui_thread_split_view_hide(PMSG_THREAD_DATA pData)
 
        PMSG_THREAD_LIST_DATA pListData = msg_ui_thread_get_current_list();
 
-       elm_object_part_content_set(pData->panes, "left", pData->layout_main);
-       elm_panes_content_left_size_set(pData->panes, 1.0);
-       if (pData->split_data) {
-               elm_object_part_content_unset(pData->panes, "right");
-               msg_ui_thread_destroy_split_data(pData->split_data);
-       }
+       if (pListData && pListData->view_mode == THREAD_NORMAL_VIEW) {
+               elm_object_part_content_set(pData->panes, "left", pData->layout_main);
+               elm_panes_content_left_size_set(pData->panes, 1.0);
+               if (pData->split_data) {
+                       elm_object_part_content_unset(pData->panes, "right");
+                       msg_ui_thread_destroy_split_data(pData->split_data);
+               }
 
-       if (pListData) {
                if (pListData->search_mode == THREAD_SEARCH_OFF) {
+                       edje_object_signal_emit(_EDJ(pListData->content_ly), "hide_searchbar", "sel_all");
+                       elm_object_part_content_unset(pListData->content_ly, "sel_all");
+                       evas_object_hide(pListData->searchbar);
                        msg_ui_thread_show_toolbar(pListData);
-
-                       if (pListData->view_mode == THREAD_NORMAL_VIEW) {
-                               edje_object_signal_emit(_EDJ(pListData->content_ly), "hide_searchbar", "sel_all");
-                               elm_object_part_content_unset(pListData->content_ly, "sel_all");
-                               evas_object_hide(pListData->searchbar);
-                       }
+               } else {
+                       Evas_Object *entry = NULL;
+                       entry = elm_object_part_content_get(pListData->searchbar, "elm.swallow.content");
+                       if (entry && elm_object_focus_get(entry) == EINA_FALSE)
+                               msg_ui_thread_show_toolbar(pListData);
                }
+
                elm_naviframe_item_title_visible_set(pListData->nf_it, EINA_TRUE);
 
                Evas_Object * layout = msg_ui_get_composer_ug_viewer_layout();
                if (layout) {
                        elm_object_part_content_set(pData->panes, "right", layout);
-                       elm_object_part_content_unset(pData->panes, "left");
                        elm_panes_content_left_size_set(pData->panes, 0.0);
                        evas_object_hide(pData->layout_main);
                } else if (pData->detail_layout) {
@@ -1035,6 +1038,8 @@ void msg_ui_thread_split_view_hide(PMSG_THREAD_DATA pData)
                        if (pListData->sel_gen_item > 0)
                                msg_ui_thread_launch_msg_detail_view(pListData, elm_object_item_data_get(pListData->sel_gen_item));
                }
+
+               elm_object_signal_emit(pData->panes, "elm,panes,unpair", "");
        }
-       elm_object_signal_emit(pData->panes, "elm,panes,unpair", "");
+       D_LEAVE;
 }
index 4eae014..533b456 100755 (executable)
@@ -556,7 +556,6 @@ void msg_ui_thread_cancel_edit_mode(PMSG_THREAD_LIST_DATA pListData)
 
        elm_object_part_content_unset(pListData->content_ly, "sel_all");
        evas_object_hide(pListData->sel_all_ly);
-       elm_object_part_content_set(pListData->content_ly, "sel_all", pListData->searchbar);
        if (msg_ui_thread_rotation_get() == false)
                edje_object_signal_emit(_EDJ(pListData->content_ly), "hide_searchbar", "sel_all");
        else
@@ -585,8 +584,6 @@ void msg_ui_thread_show_normal_mode(PMSG_THREAD_LIST_DATA pListData)
                pListData->select_info = NULL;
        }
 
-       msg_ui_thread_set_navi_toolbar_item(pListData);
-
        if (pListData->list_type == THREAD_NORMAL_LIST_TYPE)
                elm_object_item_text_set(pListData->nf_it, dgettext("sys_string", "IDS_COM_BODY_MESSAGES"));
        else if (pListData->list_type == THREAD_SPAM_LIST_TYPE)
@@ -604,8 +601,7 @@ void msg_ui_thread_show_normal_mode(PMSG_THREAD_LIST_DATA pListData)
                elm_naviframe_item_title_visible_set(pListData->nf_it, EINA_TRUE);
                msg_ui_thread_show_toolbar(pListData);
        } else {
-               elm_naviframe_item_title_visible_set(pListData->nf_it, EINA_FALSE);
-               msg_ui_thread_hide_toolbar(pListData, true);
+               msg_ui_thread_split_view_show(msg_ui_thread_get_data());
        }
 
        D_LEAVE;
index 2100721..9de78ad 100755 (executable)
@@ -1401,15 +1401,6 @@ collections {
                name : "title";
                parts {
                        part {
-                               name: "rect";
-                               type: RECT;
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       color: 0 0 0 0;
-                               }
-                       }
-                       part {
                                name: "title_top_padding";
                                type: RECT;
                                scale: 1;
@@ -1417,10 +1408,10 @@ collections {
                                        state: "default" 0.0;
                                        visible: 0;
                                        fixed: 0 1;
-                                       min: 0 10;
+                                       min: 0 32;
                                        align: 0.5 0;
-                                       rel1{to: "rect"; relative: 0.0 0.0;}
-                                       rel2{to: "rect"; relative: 1.0 0.0;}
+                                       rel1{relative: 0.0 0.0;}
+                                       rel2{relative: 1.0 0.0;}
                                }
                        }
                        part {
@@ -1431,10 +1422,10 @@ collections {
                                        state: "default" 0.0;
                                        visible: 0;
                                        fixed: 0 1;
-                                       min: 0 16;
-                                       align: 0 1.0;
-                                       rel1{to: "rect"; relative: 0.0 1.0;}
-                                       rel2{to: "rect"; relative: 1.0 1.0;}
+                                       min: 0 10;
+                                       align: 0.5 1.0;
+                                       rel1{relative: 0.0 1.0;}
+                                       rel2{relative: 1.0 1.0;}
                                }
                        }
                        part {
@@ -1446,9 +1437,9 @@ collections {
                                        visible: 0;
                                        fixed: 1 0;
                                        min: 16 0;
-                                       align: 1.0 0.5;
-                                       rel1{to: "title_btn"; relative: 0.0 0.0;}
-                                       rel2{to: "title_btn"; relative: 0.0 1.0;}
+                                       align: 0 0.5;
+                                       rel1{to: "title_top_padding"; relative: 0.0 1.0;}
+                                       rel2{to: "title_bottom_padding"; relative: 0.0 0.0;}
                                }
                        }
                        part {
@@ -1458,8 +1449,8 @@ collections {
                                description {
                                        state: "default" 0.0;
                                        fixed: 0 0;
-                                       min: 0 72;
-                                       align: 0 0.5;
+                                       min: 0 68;
+                                       align: 0.5 0.5;
                                        rel1{to_x: "title_left_padding"; to_y: "title_top_padding"; relative: 1.0 1.0;}
                                        rel2{to_x: "title_attach_left_padding"; to_y: "title_bottom_padding"; relative: 0.0 0.0;}
                                }
@@ -1472,10 +1463,10 @@ collections {
                                        state: "default" 0.0;
                                        visible: 0;
                                        fixed: 1 0;
-                                       min: 16 0;
+                                       min: 10 68;
                                        align: 1.0 0.5;
-                                       rel1{to_x: "attach_btn"; to_y: "rect"; relative: 0.0 0.0;}
-                                       rel2{to_x: "attach_btn"; to_y: "rect"; relative: 0.0 1.0;}
+                                       rel1{to_x: "attach_btn"; relative: 0.0 0.0;}
+                                       rel2{to_x: "attach_btn"; relative: 0.0 1.0;}
                                }
                        }
                        part {
@@ -1484,9 +1475,9 @@ collections {
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       fixed: 0 0;
-                                       min: 0 72;
-                                       align: 1 0.5;
+                                       fixed: 1 1;
+                                       min: 68 68;
+                                       align: 1.0 0.75;
                                        rel1{to_x: "title_right_padding"; to_y: "title_top_padding"; relative: 0.0 1.0;}
                                        rel2{to_x: "title_right_padding"; to_y: "title_bottom_padding"; relative: 0.0 0.0;}
                                }
@@ -1501,8 +1492,8 @@ collections {
                                        fixed: 1 0;
                                        min: 16 0;
                                        align: 1.0 0.5;
-                                       rel1{to: "rect"; relative: 1.0 0.0;}
-                                       rel2{to: "rect"; relative: 1.0 1.0;}
+                                       rel1{relative: 1.0 0.0;}
+                                       rel2{relative: 1.0 1.0;}
                                }
                        }
                }