static void
broadcast_modifiers_to_unfocused_clients(struct wlr_seat *seat,
+ const struct keyboard *keyboard,
const struct wlr_keyboard_modifiers *modifiers)
{
+ /* Prevent overwriting the group modifier by a virtual keyboard */
+ if (keyboard->is_virtual) {
+ return;
+ }
+
struct wlr_seat_client *client;
wl_list_for_each(client, &seat->clients, link) {
if (client == seat->keyboard_state.focused_client) {
* clients with pointer-focus (see issue #2271)
*/
broadcast_modifiers_to_unfocused_clients(seat->seat,
- &wlr_keyboard->modifiers);
+ keyboard, &wlr_keyboard->modifiers);
}
}