Eina_Bool need_show;
};
+typedef struct _E_Floating_Position {
+ int portrait_x;
+ int portrait_y;
+ int landscape_x;
+ int landscape_y;
+} E_Floating_Position;
+
E_Input_Panel *g_input_panel = NULL;
+E_Floating_Position g_floating_position = {-1, -1, -1, -1};
Eina_List *handlers = NULL;
static Eina_Bool panel_show_need_rerun = EINA_FALSE;
{
panel_show_need_rerun = need_rerun;
}
+
+void
+e_input_panel_floating_position_set(E_Client *ec, int x, int y)
+{
+ if (!ec) return;
+
+ switch (ec->e.state.rot.ang.curr)
+ {
+ case 0:
+ case 180:
+ g_floating_position.portrait_x = x;
+ g_floating_position.portrait_y = y;
+ break;
+ case 90:
+ case 270:
+ g_floating_position.landscape_x = x;
+ g_floating_position.landscape_y = y;
+ break;
+ default:
+ break;
+ }
+}
\ No newline at end of file
}
static void
+_e_text_input_cb_input_panel_position_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t x, uint32_t y)
+{
+ E_Text_Input *text_input = wl_resource_get_user_data(resource);
+
+ if (!text_input)
+ {
+ WTI_WARNING(resource,
+ WL_DISPLAY_ERROR_INVALID_OBJECT,
+ "No Text Input For Resource");
+ return;
+ }
+ e_input_panel_floating_position_set(client_surface_ec, x, y);
+}
+
+static void
_e_text_input_cb_resource_destroy(struct wl_resource *resource)
{
E_Text_Input *text_input = wl_resource_get_user_data(resource);
_e_text_input_cb_get_hide_permission,
_e_text_input_cb_set_capital_mode,
_e_text_input_cb_prediction_hint_set,
- _e_text_input_cb_mime_type_accept_set
+ _e_text_input_cb_mime_type_accept_set,
+ _e_text_input_cb_input_panel_position_set
};
static 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);
+void e_input_panel_floating_position_set(E_Client *ec, int x, int y);
typedef enum {
TIZEN_PROFILE_UNKNOWN = 0,