static void
_e_input_panel_surface_resource_destroy(struct wl_resource *resource)
{
+ LOGD("");
E_Input_Panel_Surface *ips = wl_resource_get_user_data(resource);
E_Input_Panel *input_panel = NULL;
E_Client *ec = NULL;
break;
}
}
+
+Eina_Bool
+e_input_panel_surface_destroy(E_Client *ec)
+{
+ E_Input_Panel_Surface *ips;
+ Eina_List *l;
+ Eina_List *l_next;
+
+ if (!g_input_panel) return EINA_FALSE;
+
+ EINA_LIST_FOREACH_SAFE(g_input_panel->surfaces, l, l_next, ips)
+ {
+ if (!ips->ec) continue;
+ if (ips->ec == ec)
+ {
+ g_input_panel->surfaces = eina_list_remove_list(g_input_panel->surfaces, l);
+ }
+ }
+
+ return EINA_TRUE;
+}
LOGD("transient_for_ec deleted, hiding input panel\n");
e_input_panel_visibility_change(EINA_FALSE);
e_input_panel_transient_for_set(NULL);
+
+ if(!e_input_panel_surface_destroy(ec))
+ LOGW("fail to remove surface\n");
+
g_input_panel_state = E_INPUT_PANEL_STATE_DID_HIDE;
if (g_timer_will_hide)
{
EINTERN void e_input_panel_transient_for_set(E_Client *parent);
void e_input_panel_show_need_rerun_set(Eina_Bool need_rerun);
void e_input_panel_floating_position_set(E_Client *ec, int x, int y);
-
void e_text_input_update_input_panel_state(Eina_Bool state);
+Eina_Bool e_input_panel_surface_destroy(E_Client *ec);
typedef enum {
TIZEN_PROFILE_UNKNOWN = 0,