input_method: add object pointer member in event struct 49/280249/1
authorduna.oh <duna.oh@samsung.com>
Tue, 23 Aug 2022 09:19:37 +0000 (18:19 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 26 Aug 2022 00:33:05 +0000 (09:33 +0900)
Change-Id: I5002a7b4e42c5c6a7bb5b47dcf92500a0b22dcdf

include/libds-tizen/input_method.h
src/input_method/input_method.c

index 731b889..2209026 100644 (file)
@@ -8,62 +8,77 @@
 extern "C" {
 #endif
 
+struct ds_tizen_input_method_manager;
+struct ds_tizen_input_method_context;
+struct ds_tizen_input_method;
+
 struct ds_tizen_input_method_manager_event_set_transient_for
 {
+    struct ds_tizen_input_method_manager *im_mgr;
     uint32_t pid_parent, pid_child;
 };
 
 struct ds_tizen_input_method_context_event_commit_string
 {
+    struct ds_tizen_input_method_context *im_context;
     uint32_t serial;
     const char *text;
 };
 
 struct ds_tizen_input_method_context_event_preedit_string
 {
+    struct ds_tizen_input_method_context *im_context;
     uint32_t serial;
     const char *text, *commit;
 };
 
 struct ds_tizen_input_method_context_event_preedit_styling
 {
+    struct ds_tizen_input_method_context *im_context;
     uint32_t index, length, style;
 };
 
 struct ds_tizen_input_method_context_event_preedit_cursor
 {
+    struct ds_tizen_input_method_context *im_context;
     int32_t index;
 };
 
 struct ds_tizen_input_method_context_event_delete_surrounding_text
 {
+    struct ds_tizen_input_method_context *im_context;
     int32_t index;
     uint32_t length;
 };
 
 struct ds_tizen_input_method_context_event_cursor_position
 {
+    struct ds_tizen_input_method_context *im_context;
     int32_t index, anchor;
 };
 
 struct ds_tizen_input_method_context_event_modifiers_map
 {
+    struct ds_tizen_input_method_context *im_context;
     struct wl_array *map;
 };
 
 struct ds_tizen_input_method_context_event_keysym
 {
+    struct ds_tizen_input_method_context *im_context;
     uint32_t serial, time, sym, state, modifiers;
 };
 
 struct ds_tizen_input_method_context_event_language
 {
+    struct ds_tizen_input_method_context *im_context;
     uint32_t serial;
     const char *language;
 };
 
 struct ds_tizen_input_method_context_event_text_direction
 {
+    struct ds_tizen_input_method_context *im_context;
     uint32_t serial, direction;
 };
 
index 2293272..eb6232b 100644 (file)
@@ -103,6 +103,7 @@ input_method_mgr_handle_set_transient_for(struct wl_client *wl_client,
     ds_inf("input_method_mgr_handle_set_transient_for() parent:%u, child:%u",
         parent_pid, child_pid);
 
+    ds_event.im_mgr = input_method_mgr;
     ds_event.pid_parent = parent_pid;
     ds_event.pid_child = child_pid;
     wl_signal_emit(&input_method_mgr->events.set_transient_for, &ds_event);
@@ -218,7 +219,7 @@ input_method_context_client_handle_destroy(struct wl_resource *resource)
 {
     struct ds_tizen_input_method_context *context = wl_resource_get_user_data(resource);
     struct ds_tizen_input_method *input_method;
-   
+
     ds_inf("input_method_context_client_handle_destroy");
 
     input_method = context->input_method;
@@ -443,6 +444,7 @@ context_handle_commit_string(struct wl_client *client,
     struct ds_tizen_input_method_context_event_commit_string ds_event;
 
     ds_inf("context_handle_commit_string");
+    ds_event.im_context = context;
     ds_event.serial = serial;
     ds_event.text = text;
 
@@ -460,6 +462,7 @@ context_handle_preedit_string(struct wl_client *client,
     ds_inf("context_handle_preedit_string() serial:%u, text:%s, commit:%s",
         serial, text, commit);
 
+    ds_event.im_context = context;
     ds_event.serial = serial;
     ds_event.text = text;
     ds_event.commit = commit;
@@ -478,6 +481,7 @@ context_handle_preedit_styling(struct wl_client *client,
     ds_inf("context_handle_preedit_styling() index:%u, length:%u, style:%u",
         index, length, style);
 
+    ds_event.im_context = context;
     ds_event.index = index;
     ds_event.length = length;
     ds_event.style = style;
@@ -494,6 +498,7 @@ context_handle_preedit_cursor(struct wl_client *client,
 
     ds_inf("context_handle_preedit_cursor() cursor:%d", index);
 
+    ds_event.im_context = context;
     ds_event.index = index;
     wl_signal_emit(&context->events.preedit_styling, &ds_event);
 }
@@ -507,6 +512,7 @@ context_handle_delete_surrounding_text(struct wl_client *client,
 
     ds_inf("context_handle_delete_surrounding_text() index:%d, length:%u", index, length);
 
+    ds_event.im_context = context;
     ds_event.index = index;
     ds_event.length = length;
     wl_signal_emit(&context->events.delete_surrounding_text, &ds_event);
@@ -521,6 +527,7 @@ context_handle_cursor_position(struct wl_client *client,
 
     ds_inf("context_handle_cursor_position() index:%d anchor:%d", index, anchor);
 
+    ds_event.im_context = context;
     ds_event.index = index;
     ds_event.anchor = anchor;
     wl_signal_emit(&context->events.cursor_position, &ds_event);
@@ -535,6 +542,7 @@ context_handle_modifiers_map(struct wl_client *client,
 
     ds_inf("context_handle_modifiers_map() map(%p)", map);
 
+    ds_event.im_context = context;
     ds_event.map = map;
     wl_signal_emit(&context->events.modifiers_map, &ds_event);
 }
@@ -550,6 +558,7 @@ context_handle_keysym(struct wl_client *client, struct wl_resource *resource,
     ds_inf("context_handle_keysym() serial(%u), time(%u), sym(%u), state(%u), modifiers(%u)",
         serial, time, sym, state, modifiers);
 
+    ds_event.im_context = context;
     ds_event.serial = serial;
     ds_event.time = time;
     ds_event.sym = sym;
@@ -592,6 +601,7 @@ context_handle_language(struct wl_client *client,
 
     ds_inf("context_handle_language() serial(%u) language(%s)", serial, language);
 
+    ds_event.im_context = context;
     ds_event.serial = serial;
     ds_event.language = language;
     wl_signal_emit(&context->events.language, &ds_event);
@@ -606,6 +616,7 @@ context_handle_text_direction(struct wl_client *client,
 
     ds_inf("context_handle_text_direction() serial(%u) direction(%u)", serial, direction);
 
+    ds_event.im_context = context;
     ds_event.serial = serial;
     ds_event.direction = direction;
     wl_signal_emit(&context->events.text_direction, &ds_event);