if (!(input_panel = ips->input_panel)) return;
- _e_input_panel_surface_append(input_panel, ips);
+ /* Do not append duplicated surface - And need to check if the surface really needs to be appended here,
+ * since the newly created surface is already being appended at function _e_input_panel_cb_surface_get() */
+ if (eina_list_data_find(input_panel->surfaces, ips) != ips)
+ {
+ _e_input_panel_surface_append(input_panel, ips);
+ }
ips->panel = EINA_FALSE;
}
if (!(input_panel = ips->input_panel)) return;
- _e_input_panel_surface_append(input_panel, ips);
+ /* Do not append duplicated surface - And need to check if the surface really needs to be appended here,
+ * since the newly created surface is already being appended at function _e_input_panel_cb_surface_get() */
+ if (eina_list_data_find(input_panel->surfaces, ips) != ips)
+ {
+ _e_input_panel_surface_append(input_panel, ips);
+ }
ips->panel = EINA_TRUE;
}