{
if (!input_panel || !ips) return;
+ E_Client *client_surface = e_text_input_client_surface_get();
ips->resource = resource;
input_panel->surfaces = eina_list_append(input_panel->surfaces, ips);
- LOGD("input_panel %p ips %p resource %p", input_panel, ips, resource);
+ LOGD("input_panel %p ips %p resource %p client surface %p", input_panel, ips, resource, client_surface);
+
+ if (client_surface)
+ e_input_panel_transient_for_set(client_surface);
/* When a new input panel surface is created and if we have failed
* showing input panel previously, try to show it again here */
static void _e_text_input_deactivate(E_Text_Input *text_input, E_Input_Method *input_method, Eina_Bool need_focus_in);
static Eina_Bool _e_text_input_method_create_context(struct wl_client *client, E_Input_Method *input_method, E_Text_Input *text_input, Eina_Bool need_focus_out);
+E_Client *
+e_text_input_client_surface_get(void)
+{
+ return client_surface_ec;
+}
+
static void
_e_text_input_log_show(struct wl_resource *resource, uint32_t code, const char *msg, const char *warning_msg)
{
void e_input_panel_visibility_change(Eina_Bool visible);
Eina_Bool e_input_panel_client_find(E_Client *ec);
Eina_Bool e_input_panel_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
+E_Client *e_text_input_client_surface_get(void);
EINTERN void e_input_panel_wait_update_set(Eina_Bool wait_update);
EINTERN void e_input_panel_transient_for_set(E_Client *parent);
void e_input_panel_show_need_rerun_set(Eina_Bool need_rerun);