From d209e6c55aac7c943341d5cc3efbb80ea1cc1ba5 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 16 Jan 2025 10:11:25 +0900 Subject: [PATCH] e_comp_wl: reduce duplicated code of input region update Change-Id: I8b6821eaed4591467c26cd24c6894028ad65adfe Signed-off-by: Jihoon Kim --- src/bin/server/e_comp_wl.c | 61 +++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/src/bin/server/e_comp_wl.c b/src/bin/server/e_comp_wl.c index 0eedee3d29..4bcb69152f 100644 --- a/src/bin/server/e_comp_wl.c +++ b/src/bin/server/e_comp_wl.c @@ -2815,6 +2815,29 @@ _e_comp_wl_client_pixmap_opaque_region_update(E_Client *ec, int buffer_width, in pixman_region32_fini(®ion); } +static void +_e_comp_wl_client_input_region_input_thread_clone(E_Client *ec, int x, int y, int w, int h) +{ + E_Input_Thread_Request_EClient_Data ec_data; + Eina_Rectangle *input_rect; + + if (!e_input_thread_check_client_cloning_needed()) + return; + + memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data)); + + input_rect = eina_rectangle_new(x, y, w, h); + + if (input_rect) + { + ec_data.ec = ec; + ec_data.rect = input_rect; + + ICINF("[input region] ec(%p), x(%d), y(%d), w(%d), h(%d)\n", ec, EINA_RECTANGLE_ARGS(input_rect)); + e_input_backend_thread_safe_call(_e_comp_wl_input_thread_input_area_append, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data)); + } +} + static void _e_comp_wl_client_input_region_update(E_Client *ec) { @@ -2826,6 +2849,7 @@ _e_comp_wl_client_input_region_update(E_Client *ec) int x, y, w, h; int sw = ec->w; int sh = ec->h; + E_Input_Thread_Request_EClient_Data ec_data; if (!input_region || !pixman_region32_not_empty(input_region) || !ec->first_mapped) return; @@ -2839,14 +2863,13 @@ _e_comp_wl_client_input_region_update(E_Client *ec) pixman_region32_clear(input_region); if (pixman_region32_not_empty(®ion)) { - E_Input_Thread_Request_EClient_Data ec_data; memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data)); e_view_client_input_objs_del(e_client_view_get(ec)); if (e_input_thread_check_client_cloning_needed()) { ec_data.ec = ec; - INF("[%s] ec(%p)\n", __func__, ec); + ICINF("[%s] ec(%p)\n", __func__, ec); e_input_backend_thread_safe_call(_e_comp_wl_input_thread_input_area_clear, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data)); } @@ -2860,43 +2883,15 @@ _e_comp_wl_client_input_region_update(E_Client *ec) ELOGF("COMP", "Set Input Area x:%d, y:%d, w:%d, h:%d, ec(%dx%d)", ec, x, y, w, h, sw, sh); - e_view_client_input_area_set(e_client_view_get(ec), x, y, w, h); - if (e_input_thread_check_client_cloning_needed()) - { - Eina_Rectangle *input_rect; - input_rect = eina_rectangle_new(x, y, w, h); - - if (input_rect) - { - ec_data.rect = input_rect; - INF("[%s] ec(%p), x(%d), y(%d), w(%d), h(%d)\n", __func__, ec, EINA_RECTANGLE_ARGS(input_rect)); - e_input_backend_thread_safe_call(_e_comp_wl_input_thread_input_area_append, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data)); - } - } + e_view_client_input_area_set(e_client_view_get(ec), x, y, w, h); + _e_comp_wl_client_input_region_input_thread_clone(ec, x, y, w, h); } } else { e_view_client_input_area_set(e_client_view_get(ec), 0, 0, sw, sh); - - if (e_input_thread_check_client_cloning_needed()) - { - E_Input_Thread_Request_EClient_Data ec_data; - memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data)); - - Eina_Rectangle *input_rect; - input_rect = eina_rectangle_new(0, 0, sw, sh); - - if (input_rect) - { - ec_data.ec = ec; - ec_data.rect = input_rect; - - INF("[%s] ec(%p), x(0), y(0), w(%d), h(%d)\n", __func__, ec, sw, sh); - e_input_backend_thread_safe_call(_e_comp_wl_input_thread_input_area_append, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data)); - } - } + _e_comp_wl_client_input_region_input_thread_clone(ec, 0, 0, sw, sh); } pixman_region32_fini(®ion); -- 2.34.1