Add implementation to set surrounding text 80/290980/1
authorInHong Han <inhong1.han@samsung.com>
Thu, 6 Apr 2023 01:29:18 +0000 (10:29 +0900)
committerInHong Han <inhong1.han@samsung.com>
Thu, 6 Apr 2023 01:29:18 +0000 (10:29 +0900)
Change-Id: Iceacbb91c82398cdd1d037f5f276eae260264b02

src/e_mod_main.c

index ec7c269..996031b 100644 (file)
@@ -1820,6 +1820,24 @@ _e_text_input_cb_finalize_content(struct wl_client *client EINA_UNUSED, struct w
 }
 
 static void
+_e_text_input_cb_surrounding_text_ex_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, const char *text, uint32_t cursor, uint32_t anchor, uint32_t block_index, uint32_t block_size)
+{
+   E_Text_Input *text_input = wl_resource_get_user_data(resource);
+   E_Input_Method *input_method = NULL;
+   Eina_List *l = NULL;
+
+   CHECK_TEXT_INPUT(resource, text_input);
+
+   EINA_LIST_FOREACH(text_input->input_methods, l, input_method)
+     {
+        if (!input_method || !input_method->context) continue;
+
+        if (input_method->context->resource)
+          zwp_input_method_context_v1_send_surrounding_text_ex(input_method->context->resource, text, cursor, anchor, block_index, block_size);
+     }
+}
+
+static void
 _e_text_input_cb_resource_destroy(struct wl_resource *resource)
 {
    E_Text_Input *text_input = wl_resource_get_user_data(resource);
@@ -1915,7 +1933,8 @@ static const struct wl_text_input_interface _e_text_input_implementation = {
      _e_text_input_cb_input_panel_position_set,
      _e_text_input_cb_finalize_content,
      _e_text_input_cb_prediction_hint_data_set,
-     _e_text_input_cb_input_panel_enabled_set
+     _e_text_input_cb_input_panel_enabled_set,
+     _e_text_input_cb_surrounding_text_ex_set
 };
 
 static void