e_comp_wl_input: replace a hook callback of wl_signal listener from surface_commit
authorduna.oh <duna.oh@samsung.com>
Thu, 27 Mar 2025 07:36:29 +0000 (16:36 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Thu, 27 Mar 2025 10:47:20 +0000 (19:47 +0900)
Change-Id: I1de4ef486b870e1d8c6c742ca1a28c6d80579b04

src/bin/server/e_comp_wl_input.c
src/include/e_comp_wl.h

index e4bfdc50517430cabe838b3f8a42bfb4c2e0d02e..3ff465fa8737eba2446882cf544fb432d75cdc25 100644 (file)
@@ -480,14 +480,13 @@ static void
 _e_comp_wl_input_cb_pointer_constraints_surface_committed(struct wl_listener *listener,
                                                           void *data)
 {
-   E_Client *ec = (E_Client *)data;
+   E_Client *ec;
    E_Comp_Wl_Pointer_Constraint *constraint = container_of(listener,
                                               E_Comp_Wl_Pointer_Constraint,
                                               surface_commit_listener);
    int new_x, new_y;;
 
-   if (ec != constraint->ec)
-     return;
+   if (!(ec = constraint->ec)) return;
 
    if (constraint->is_hint_pending)
      {
@@ -676,14 +675,15 @@ _e_comp_wl_input_pointer_constraint_create(E_Client *ec,
 
    wl_signal_add(&comp_wl->ptr_constraints.pointer_destroy_signal,
                  &constraint->pointer_destroy_listener);
-   wl_signal_add(&comp_wl->ptr_constraints.surface_commit_signal,
-                 &constraint->surface_commit_listener);
    wl_signal_add(&comp_wl->ptr_constraints.surface_mousein_signal,
                  &constraint->surface_mousein_listener);
    wl_signal_add(&comp_wl->ptr_constraints.surface_mouseout_signal,
                  &constraint->surface_mouseout_listener);
    wl_list_init(&constraint->surface_unmap_listener.link);
 
+   e_surface_commit_listener_add(e_surface_try_from_ec(ec),
+                                 &constraint->surface_commit_listener);
+
    return constraint;
 }
 
@@ -909,14 +909,6 @@ _e_comp_wl_input_cb_bind_pointer_constraints(struct wl_client *client, void *dat
                                   NULL, _e_comp_wl_input_cb_unbind_pointer_constraints);
 }
 
-static void
-_e_comp_wl_input_cb_surface_commit(void *data EINA_UNUSED, E_Client *ec)
-{
-   E_Comp_Wl_Data *comp_wl = e_comp_wl_get();
-
-   wl_signal_emit(&comp_wl->ptr_constraints.surface_commit_signal, ec);
-}
-
 static void
 _e_comp_wl_input_keymap_cache_create(const char *keymap_path, char *keymap_data)
 {
@@ -1143,14 +1135,9 @@ e_comp_wl_input_init(void)
    comp_wl->ptr_constraints.activated = EINA_FALSE;
    wl_signal_init(&comp_wl->ptr_constraints.pointer_destroy_signal);
    wl_signal_init(&comp_wl->ptr_constraints.surface_unmap_signal);
-   wl_signal_init(&comp_wl->ptr_constraints.surface_commit_signal);
    wl_signal_init(&comp_wl->ptr_constraints.surface_mousein_signal);
    wl_signal_init(&comp_wl->ptr_constraints.surface_mouseout_signal);
 
-   _surface_commit_hook = e_comp_wl_hook_add(E_COMP_WL_HOOK_CLIENT_SURFACE_COMMIT,
-                                             _e_comp_wl_input_cb_surface_commit,
-                                             NULL);
-
    wl_array_init(&e_comp_input_key->kbd.keys);
    wl_array_init(&e_comp_input_key->kbd.routed_keys);
 
index eb7bf967d5446175a601967693c958b85548989b..930b91f57e7e4d4ee18c70fa747aaab827fd4829 100644 (file)
@@ -253,7 +253,7 @@ struct _E_Comp_Wl_Data
         Eina_Bool activated : 1;
         struct wl_signal pointer_destroy_signal;
         struct wl_signal surface_unmap_signal;
-        struct wl_signal surface_commit_signal;
+        E_DEPRECATED struct wl_signal surface_commit_signal;
         struct wl_signal surface_mousein_signal;
         struct wl_signal surface_mouseout_signal;
         struct wl_global *global;
@@ -261,9 +261,9 @@ struct _E_Comp_Wl_Data
 
    struct
      {
-         Eina_List *resources;
-         E_DEPRECATED Eina_Bool enabled : 1;
-         E_DEPRECATED unsigned int num_devices;
+        E_DEPRECATED Eina_List *resources;
+        E_DEPRECATED Eina_Bool enabled : 1;
+        E_DEPRECATED unsigned int num_devices;
         unsigned int pressed;
         E_Client *faked_ec;
         E_Client *frame_ec;