fixed auto rotation (on->off) : it should rotate from landscape to portrait
authorMyoungJune Park <mj2004.park@samsung.com>
Sat, 20 Oct 2012 05:13:39 +0000 (14:13 +0900)
committerMyoungJune Park <mj2004.park@samsung.com>
Sat, 27 Oct 2012 10:24:14 +0000 (19:24 +0900)
src/setting-main.c

index bda6a39..58dd80c 100755 (executable)
@@ -773,6 +773,8 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
                                int value = 0;
                                vconf_get_bool
                                    (VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &value);
+                               // true  : auto rotation OFF
+                               // false : auto rotation ON
                                value = !value;
 
                                ad->data_rotationMode =
@@ -2229,6 +2231,27 @@ setting_main_click_list_plugin_cb(void *data, Evas_Object *obj,
 #endif
 }
 
+/**
+ * @see [caller] setting_main_list_mouse_up_cb
+ * @see [caller] setting_main_sel_list_mouse_up_cb
+ */
+static void __rotate_lock_handler(int chk_status, setting_main_appdata *ad )
+{
+       SETTING_TRACE_BEGIN;
+       if( chk_status == 1)
+       {
+               // toggle : 0 --> 1
+               int angle = elm_win_rotation_get(ad->win_main);
+               elm_win_rotation_with_resize_set(ad->win_main, angle);
+       } else {
+               elm_win_rotation_with_resize_set(ad->win_main, 0);
+       }
+       vconf_set_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, !chk_status);
+}
+
+/**
+ * toggle cb
+ */
 void setting_main_list_mouse_up_cb(void *data, Evas_Object *eo,
                                          void *event_info)
 {
@@ -2256,12 +2279,15 @@ void setting_main_list_mouse_up_cb(void *data, Evas_Object *eo,
                }
 
        } else if (!safeStrCmp(KeyStr_Landscape, list_item->keyStr)) {
-               vconf_set_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, ! list_item->chk_status);
+               __rotate_lock_handler(list_item->chk_status, ad);
        }
 
        return;
 }
 
+/**
+ * genlist touch cb
+ */
 void setting_main_sel_list_mouse_up_cb(void *data, Evas_Object *eo,
                                              void *event_info)
 {
@@ -2275,9 +2301,12 @@ void setting_main_sel_list_mouse_up_cb(void *data, Evas_Object *eo,
            (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
 
        list_item->chk_status = elm_check_state_get(list_item->eo_check);
+
        /* new status */
+    list_item->chk_status = !list_item->chk_status;
+    elm_check_state_set(list_item->eo_check, list_item->chk_status);
 
-       /*setting_main_appdata *ad = (setting_main_appdata *) data;*/
+       setting_main_appdata *ad = (setting_main_appdata *) data;
 
        if (!safeStrCmp(KeyStr_UsePacketData, list_item->keyStr)) {
                /* setting_reset_slp_key_by_status(eo, BOOL_SLP_SETTING_USE_PACKET_DATA); */
@@ -2286,7 +2315,7 @@ void setting_main_sel_list_mouse_up_cb(void *data, Evas_Object *eo,
                                         list_item->chk_status, &err);
 
        } else if (!safeStrCmp(KeyStr_Landscape, list_item->keyStr)) {
-               vconf_set_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, (list_item->chk_status));
+               __rotate_lock_handler(list_item->chk_status, ad);
        }
 
        return;