_e_input_panel_surface_show(ips);
}
-static void
- _e_input_panel_surface_cb_floating_panel_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t state)
-{
- E_Input_Panel_Surface *ips = wl_resource_get_user_data(resource);
-
- if (!ips)
- {
- WTI_WARNING(resource,
- WL_DISPLAY_ERROR_INVALID_OBJECT,
- "No Input Panel Surface For Surface");
- return;
- }
-
- if (!ips->ec) return;
-
- if (ips->ec->vkbd.floating == state) return;
-
- ips->ec->vkbd.floating = !!state;
-
- if (ips->ec->vkbd.floating)
- e_policy_conformant_part_del(ips->ec);
- else
- e_policy_conformant_part_add(ips->ec);
-}
-
-static void
-_e_input_panel_surface_cb_floating_drag_enabled_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t enabled)
-{
- E_Input_Panel_Surface *ips = wl_resource_get_user_data(resource);
-
- if (!ips)
- {
- WTI_WARNING(resource,
- WL_DISPLAY_ERROR_INVALID_OBJECT,
- "No Input Panel Surface For Surface");
- return;
- }
-
- g_floating_info->moving_req = !!enabled;
-}
-
static const struct wl_input_panel_surface_interface _e_input_panel_surface_implementation = {
_e_input_panel_surface_cb_toplevel_set,
_e_input_panel_surface_cb_overlay_panel_set,
_e_input_panel_surface_cb_ready_set,
- _e_input_panel_surface_cb_floating_panel_set,
- _e_input_panel_surface_cb_floating_drag_enabled_set
};
static void
return run_type;
}
+
+void e_input_panel_floating_panel_set(Eina_Bool state)
+{
+ E_Input_Panel_Surface *ips;
+ Eina_List *l;
+ Eina_List *l_next;
+
+ if (!g_input_panel) return;
+
+ EINA_LIST_FOREACH_SAFE(g_input_panel->surfaces, l, l_next, ips)
+ {
+ if (ips && ips->ec)
+ {
+ if (ips->ec->vkbd.floating == state) continue;
+ ips->ec->vkbd.floating = state;
+ if (ips->ec->vkbd.floating)
+ e_policy_conformant_part_del(ips->ec);
+ else
+ e_policy_conformant_part_add(ips->ec);
+ }
+ }
+}
+
+void e_input_panel_floating_drag_enabled(Eina_Bool enabled)
+{
+ g_floating_info->moving_req = enabled;
+}
\ No newline at end of file
e_input_panel_wait_update_set(EINA_TRUE);
}
+static void
+_e_text_input_moethod_context_cb_set_floating_panel(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t state)
+{
+ e_input_panel_floating_panel_set(state ? EINA_TRUE : EINA_FALSE);
+}
+
+static void
+_e_text_input_moethod_context_cb_set_floating_drag_enabled(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t enabled)
+{
+ e_input_panel_floating_drag_enabled(enabled ? EINA_TRUE : EINA_FALSE);
+}
+
static const struct wl_input_method_context_interface _e_text_input_method_context_implementation = {
_e_text_input_method_context_cb_destroy,
_e_text_input_method_context_cb_string_commit,
_e_text_input_method_context_cb_commit_content,
_e_text_input_method_context_cb_update_candidate_state,
_e_text_input_method_context_cb_reshow_input_panel,
+ _e_text_input_moethod_context_cb_set_floating_panel,
+ _e_text_input_moethod_context_cb_set_floating_drag_enabled,
};
static void