e_comp_wl: reduce duplicated code of input region update 46/318346/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Thu, 16 Jan 2025 01:11:25 +0000 (10:11 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 16 Jan 2025 02:27:50 +0000 (11:27 +0900)
Change-Id: I8b6821eaed4591467c26cd24c6894028ad65adfe
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/server/e_comp_wl.c

index 0eedee3d29e745f6d1ab2210ecd812c14a308fca..4bcb69152f41135f718011bb0e2c1d036d8e717a 100644 (file)
@@ -2815,6 +2815,29 @@ _e_comp_wl_client_pixmap_opaque_region_update(E_Client *ec, int buffer_width, in
    pixman_region32_fini(&region);
 }
 
+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(&region))
      {
-        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(&region);