Added state checking code before transition to WILL_* state 71/17571/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Tue, 24 Sep 2013 14:58:00 +0000 (23:58 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Fri, 7 Mar 2014 02:31:42 +0000 (11:31 +0900)
Change-Id: Id6d28dec0a5cf16ca1440da1d7b0b059fa210fc3

ism/extras/efl_panel/isf_panel_efl.cpp

index d2ac1a1..72b9e56 100644 (file)
@@ -3759,15 +3759,22 @@ static void slot_show_ise (void)
     }
 
     efl_set_transient_for_app_window (_ise_window);
-    _ise_state = WINDOW_STATE_WILL_SHOW;
+
+    /* If our ISE was already in SHOW state, skip state transition to WILL_SHOW */
+    if (_ise_state != WINDOW_STATE_SHOW) {
+        _ise_state = WINDOW_STATE_WILL_SHOW;
+    }
 }
 
 static void slot_hide_ise (void)
 {
     SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
 
-    // From this point, slot_get_input_panel_geometry should return hidden state geometry
-    _ise_state = WINDOW_STATE_WILL_HIDE;
+    /* Only if we are not already in HIDE state */
+    if (_ise_state != WINDOW_STATE_HIDE) {
+        /* From this point, slot_get_input_panel_geometry should return hidden state geometry */
+        _ise_state = WINDOW_STATE_WILL_HIDE;
+    }
     _window_angle = -1;
 }