e_seat: replace the found keycode with end data of wl_array 61/325061/1
authorduna.oh <duna.oh@samsung.com>
Fri, 30 May 2025 10:14:30 +0000 (19:14 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 2 Jun 2025 06:50:36 +0000 (15:50 +0900)
Change-Id: Ic3aaa3a89e7a3cf5d744342c1ddb02bbc4641919

src/bin/server/e_seat.c

index 86e831c84a62f95aae9c7a210205ebd364309587..9d8dddb08179efc5af7ec3c3dcc4554633eeb4a0 100644 (file)
@@ -1245,11 +1245,12 @@ e_seat_keyboard_keys_keydata_remove(E_Seat *seat, uint32_t keycode)
    for (k = seat->kbd.keys.data; k < end; k++)
    {
       dev_name = e_device_identifier_get(k->dev);
-      DBG("Key. Keydata (keycode:%d, dev_name:%s) removed", k->key, dev_name);
       if (k->key == keycode)
         {
-           --end;
+           *k = *--end;
            res = EINA_TRUE;
+           DBG("Key. Keydata (keycode:%d, dev_name:%s) removed", k->key, dev_name);
+           break;
         }
    }
    seat->kbd.keys.size = (const char *)end - (const char *)seat->kbd.keys.data;