Reset parent window at the time when input panel actually hides 56/99156/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Tue, 22 Nov 2016 05:20:40 +0000 (14:20 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Tue, 22 Nov 2016 05:25:38 +0000 (14:25 +0900)
Change-Id: I97892c9d2cc82fd556ea3f70a40c687dab57257c

src/e_mod_main.c

index d79fdf8d120b4dad62a1bcd440b7250e9c28d97a..5005663f15c57a261e885f8b0b359bb27299c2a3 100644 (file)
@@ -138,6 +138,7 @@ _will_hide_timer_handler(void *data)
    if (g_input_panel_state == E_INPUT_PANEL_STATE_WILL_HIDE)
      {
         e_input_panel_visibility_change(EINA_FALSE);
+        e_input_panel_transient_for_set(NULL);
         g_input_panel_state = E_INPUT_PANEL_STATE_DID_HIDE;
      }
 
@@ -174,6 +175,7 @@ _input_panel_hide(struct wl_client *client, struct wl_resource *resource, Eina_B
    if (force_hide)
      {
         e_input_panel_visibility_change(EINA_FALSE);
+        e_input_panel_transient_for_set(NULL);
         g_input_panel_state = E_INPUT_PANEL_STATE_DID_HIDE;
      }
    else
@@ -1219,7 +1221,6 @@ static void
 _e_text_input_cb_input_panel_hide(struct wl_client *client, struct wl_resource *resource)
 {
    _input_panel_hide(client, resource, EINA_FALSE);
-   e_input_panel_transient_for_set(NULL);
 }
 
 static void
@@ -1447,6 +1448,7 @@ _e_text_input_cb_input_panel_data_set(struct wl_client *client EINA_UNUSED, stru
         if (g_input_panel_state == E_INPUT_PANEL_STATE_WILL_HIDE)
           {
              e_input_panel_visibility_change(EINA_FALSE);
+             e_input_panel_transient_for_set(NULL);
              g_input_panel_state = E_INPUT_PANEL_STATE_DID_HIDE;
           }
      }
@@ -1642,6 +1644,7 @@ _e_text_input_cb_resource_destroy(struct wl_resource *resource)
    if (g_text_input == NULL && text_input->input_panel_visibile)
      {
         e_input_panel_visibility_change(EINA_FALSE);
+        e_input_panel_transient_for_set(NULL);
         g_input_panel_state = E_INPUT_PANEL_STATE_DID_HIDE;
      }
 
@@ -1927,6 +1930,7 @@ _pol_cb_hook_client_del(void *d EINA_UNUSED, E_Client *ec)
           {
              WTI_LOG("transient_for_ec deleted while waiting for will_hide_ack, hiding input panel\n");
              e_input_panel_visibility_change(EINA_FALSE);
+             e_input_panel_transient_for_set(NULL);
              g_input_panel_state = E_INPUT_PANEL_STATE_DID_HIDE;
              if (g_timer_will_hide)
                {