From 8ca9db064861cb232528b3dc09ff7cc197f7ef8e Mon Sep 17 00:00:00 2001 From: Inhong Han Date: Thu, 20 Jun 2024 16:05:39 +0900 Subject: [PATCH] Modified to send the align information after reshow request Change-Id: I81d5046ee63395a0f572c62ec4566340d7cfd920 --- ism/modules/panelagent/wayland/isf_wsc_context.h | 7 +++++++ ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/ism/modules/panelagent/wayland/isf_wsc_context.h b/ism/modules/panelagent/wayland/isf_wsc_context.h index 27138b4..ce85ae3 100644 --- a/ism/modules/panelagent/wayland/isf_wsc_context.h +++ b/ism/modules/panelagent/wayland/isf_wsc_context.h @@ -106,6 +106,10 @@ struct _WSCContextISF { uint32_t caps_mode; uint32_t angle; + int position_x; + int position_y; + int align; + Eina_Bool layout_initialized; Eina_Bool prediction_allow_initialized; Eina_Bool autocapital_type_initialized; @@ -135,6 +139,9 @@ struct _WSCContextISF { bidi_direction(0), caps_mode(0), angle(0), + position_x(-1), + position_y(-1), + align(-1), layout_initialized(EINA_FALSE), prediction_allow_initialized(EINA_FALSE), autocapital_type_initialized(EINA_FALSE), diff --git a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp index 59dc81a..5f1ecbc 100644 --- a/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp +++ b/ism/modules/panelagent/wayland/wayland_panel_agent_module.cpp @@ -621,6 +621,10 @@ _wsc_im_ctx_input_panel_position_align (void *data, struct zwp_input_method_cont LOGD ("im_context = %p, x = %d, y = %d, align = %d", im_ctx, x, y, align); if (!wsc_ctx) return; + wsc_ctx->position_x = x; + wsc_ctx->position_y = y; + wsc_ctx->align = align; + isf_wsc_context_input_panel_position_align_set (wsc_ctx, x, y, align); } static const struct zwp_input_method_context_v1_listener wsc_im_context_listener = { @@ -3483,6 +3487,9 @@ public: if (ic->impl) isf_wsc_context_input_panel_mime_type_accept_set (ic, ic->impl->mime_type.c_str ()); + if (ic->align >= 0) + isf_wsc_context_input_panel_position_align_set (ic, ic->position_x, ic->position_y, ic->align); + if (_TV) { isf_wsc_context_send_entry_metadata (ic, wsc_context_input_hint_get (ic), wsc_context_input_panel_layout_get (ic), wsc_context_input_panel_layout_variation_get (ic), wsc_context_autocapital_type_get (ic), ic->return_key_disabled, -- 2.7.4