Modified to close language popup window when naviframe pops 80/17280/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Tue, 9 Jul 2013 05:59:33 +0000 (14:59 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Thu, 6 Mar 2014 06:52:16 +0000 (15:52 +0900)
Change-Id: Ic626bc9e78aa5f453cfa6a9cfda25e310ca8c1c5

packaging/ise-default.spec
src/common.cpp
src/include/ise.h
src/option.cpp

index 7432b53..a206fb4 100644 (file)
@@ -1,6 +1,6 @@
 Name:       ise-default
 Summary:    Tizen keyboard
-Version:    1.0.0
+Version:    1.0.1
 Release:    1
 Group:      TO BE / FILLED IN
 License:    TO BE / FILLED IN
index 7d09769..403b08e 100644 (file)
@@ -62,6 +62,7 @@ static int get_app_window_degree(Evas_Object *keypad_win)
     int retVal = 0;
     Ecore_X_Window app_window = 0;
 
+    LOGD("Trying to get app window degree for %p\n", keypad_win);
     Ecore_X_Window win = elm_win_xwindow_get(static_cast<Evas_Object*>(keypad_win));
     ret = XGetWindowProperty((Display *)ecore_x_display_get (),
         ecore_x_window_root_get(win),
@@ -80,6 +81,7 @@ static int get_app_window_degree(Evas_Object *keypad_win)
                 &format_return, &nitems_return, &bytes_after_return,
                 &data_angle);
 
+            LOGD("app_window : %p, ret %d, %d, %p\n", app_window, ret, type_return, data_angle);
             if (ret == Success) {
                 if (data_angle) {
                     if (type_return == XA_CARDINAL) {
index f855de9..f107515 100644 (file)
@@ -29,7 +29,7 @@
 
 #include "languages.h"
 
-#define ISE_VERSION "1.0.0-1"
+#define ISE_VERSION "1.0.1-1"
 #define LOCALEDIR "/usr/share/locale"
 
 #define PRIMARY_LATIN_LANGUAGE "English"
index 92179d5..448aeda 100644 (file)
@@ -54,6 +54,7 @@ struct OPTION_ELEMENTS
 {
     Evas_Object *option_window;
     Evas_Object *naviframe;
+    Evas_Object *lang_popup;
 
     Ecore_Event_Handler *event_handler;
 
@@ -491,9 +492,22 @@ language_selection_finished_cb(void *data, Evas_Object *obj, void *event_info)
     }
 }
 
-Eina_Bool  _pop_cb(void *data, Elm_Object_Item *it)
+static void _popup_timeout_cb(void *data, Evas_Object * obj, void *event_info)
+{
+    if (obj) {
+        evas_object_smart_callback_del(obj, "timeout", _popup_timeout_cb);
+        evas_object_del(obj);
+        ad.lang_popup = NULL;
+    }
+}
+
+
+Eina_Bool _pop_cb(void *data, Elm_Object_Item *it)
 {
     language_selection_finished_cb(NULL, NULL, NULL);
+    if (ad.lang_popup) {
+        _popup_timeout_cb(NULL, ad.lang_popup, NULL);
+    }
     return EINA_TRUE;
 }
 
@@ -577,8 +591,7 @@ static Evas_Object* create_option_language_view(Evas_Object *naviframe)
 void
 close_option_window()
 {
-    if (ad.option_window)
-    {
+    if (ad.option_window) {
         evas_object_del(ad.option_window);
         ad.option_window = NULL;
     }
@@ -619,12 +632,6 @@ static void input_mode_selected(void *data, Evas_Object *obj, void *event_info)
     strncpy(main_itemdata[SETTING_ITEM_ID_LANGUAGE].sub_text, languages.c_str(), ITEM_DATA_STRING_LEN - 1);
 }
 
-static void _response_cb(void *data, Evas_Object * obj, void *event_info)
-{
-    if (obj)
-        evas_object_del(obj);
-}
-
 static void language_selected(void *data, Evas_Object *obj, void *event_info)
 {
     ITEMDATA *item_data = (ITEMDATA*)data;
@@ -637,11 +644,11 @@ static void language_selected(void *data, Evas_Object *obj, void *event_info)
                     info->enabled = TRUE;
                     elm_check_state_set(obj, EINA_TRUE);
 
-                    Evas_Object *lang_popup = elm_popup_add(ad.naviframe);
-                    elm_object_text_set(lang_popup, MSG_NONE_SELECTED);
-                    elm_popup_timeout_set(lang_popup, 3.0);
-                    evas_object_smart_callback_add(lang_popup, "response", _response_cb, ad.naviframe);
-                    evas_object_show(lang_popup);
+                    ad.lang_popup = elm_popup_add(ad.naviframe);
+                    elm_object_text_set(ad.lang_popup, MSG_NONE_SELECTED);
+                    elm_popup_timeout_set(ad.lang_popup, 3.0);
+                    evas_object_smart_callback_add(ad.lang_popup, "timeout", _popup_timeout_cb, ad.naviframe);
+                    evas_object_show(ad.lang_popup);
                 }
             }
         }