From: duna.oh Date: Fri, 14 Mar 2025 12:24:30 +0000 (+0900) Subject: e_seat: find the focused ec of zone when add resource to kbd.focused list X-Git-Tag: accepted/tizen/unified/20250320.120248~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c0a0ee20768b6f441861223e85bb3f65db9bafd8;p=platform%2Fupstream%2Fenlightenment.git e_seat: find the focused ec of zone when add resource to kbd.focused list Change-Id: Icb1e338d9a439a2a8c507b74555f81ff92a507b3 --- diff --git a/src/bin/server/e_seat.c b/src/bin/server/e_seat.c index e5892ce425..d1aaf5f19c 100644 --- a/src/bin/server/e_seat.c +++ b/src/bin/server/e_seat.c @@ -9,6 +9,7 @@ #include "e_pointer_intern.h" #include "e_policy_intern.h" #include "e_utils_intern.h" +#include "e_zone_intern.h" struct _E_Seat { @@ -354,8 +355,10 @@ _e_seat_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, { struct wl_resource *res; struct wl_listener *destroy_listener = NULL; - E_Comp_Wl_Data *comp_wl = e_comp_wl_get(); E_Client *focused = NULL; + E_Seat *seat; + seat = wl_resource_get_user_data(resource); + if (!seat) return; /* try to create keyboard resource */ res = wl_resource_create(client, &wl_keyboard_interface, @@ -374,7 +377,7 @@ _e_seat_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, g_rec_mutex_unlock(&e_comp_input_key->kbd.resources_mutex); wl_resource_set_implementation(res, &_e_keyboard_interface, - comp_wl, + seat, _e_seat_cb_keyboard_unbind); /* send current repeat_info */ @@ -389,7 +392,7 @@ _e_seat_cb_keyboard_get(struct wl_client *client, struct wl_resource *resource, TRACE_INPUT_END(); /* if the client owns the focused surface, we need to send an enter */ - focused = e_client_focused_get(); + focused = e_zone_focused_client_get(seat->zone); if ((!focused) || (e_object_is_del(E_OBJECT(focused))) || (!focused->comp_data)) return;