labwc/src
Hiroaki Yamamoto 9be18f3009
IME: prevent virtual keyboard from unintentionally releasing modifiers (#1721)
When Fcitx5 is activated, it creates a virtual keyboard to send keycodes to
applications, then creates a keyboard grab to capture keycodes the user typed.

Before this commit, we set keyboard grab's modifiers to that of currently
active keyboard, which is the virtual keyboard created in the case described
above. However, since the modifiers of the virtual keyboard is empty at first,
we actually set empty modifiers, even when the user is pressing modifiers.
Then, Fcitx5 assumes no modifiers is pressed and redirect the modifier state
back to the compositor via the virtual keyboard. As a result, when the focus
is switched between windows by workspace-switcher, the workspace-switcher is
immediately terminated.

To fix this issue, with this commit, the modifier state of the currently active
keyboard is not set to the keyboard grab if the keyboard is a virtual keyboard
created by the same input-method client.

Fcitx5's commit below is also required to fix the issue.
b2924bd361
2024-04-18 21:57:03 +01:00
..
button common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
common common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
config common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
decorations Chase wlroots: xdg-decoration now references a toplevel 2023-11-27 21:01:53 +00:00
input IME: prevent virtual keyboard from unintentionally releasing modifiers (#1721) 2024-04-18 21:57:03 +01:00
menu common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
ssd src/ssd/ssd_part.c: ensure button is found 2024-04-10 08:14:59 +02:00
action.c common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
buffer.c theme: create hover button fallbacks 2023-12-21 02:42:23 +01:00
debug.c overlay: add theme setting snapping.preview.[region|edge].fill 2024-04-15 12:33:40 +02:00
desktop.c osd: add window-switcher custom field (#1670) 2024-04-10 23:39:31 +01:00
dnd.c Remove headers not being used directly 2023-12-22 20:19:39 +00:00
edges.c snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
foreign.c src/view.c: store outputs the view is visible on 2024-02-06 17:23:45 +01:00
idle.c Chase wlroots: drop KDE idle protocol 2023-11-27 21:01:53 +00:00
interactive.c snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
layers.c src/layer.c: deal with wlroots scene graph running out of memory 2024-04-10 08:14:59 +02:00
main.c Add -S|--session <command> option 2024-04-14 13:05:25 +02:00
meson.build osd: add window-switcher custom field (#1670) 2024-04-10 23:39:31 +01:00
node.c common: Add znew/znew_n() macros 2022-09-18 15:25:19 -04:00
osd.c common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
osd_field.c common/buf: rename buf->buf to buf->data 2024-04-18 07:00:23 +01:00
output-virtual.c Fix various typos across the codebase 2024-03-08 13:59:20 +01:00
output.c output: ensure we don't run into an assert() on VT switch 2024-04-08 21:14:47 +01:00
overlay.c overlay: add theme settings for colors and border width 2024-04-15 12:33:40 +02:00
placement.c Fix various typos across the codebase 2024-03-08 13:59:20 +01:00
regions.c overlay: add snap-to-edge overlay (PR #1652) 2024-04-05 04:35:31 +02:00
resistance.c snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
seat.c overlay: add theme setting snapping.preview.[region|edge].fill 2024-04-15 12:33:40 +02:00
server.c Add -S|--session <command> option 2024-04-14 13:05:25 +02:00
session-lock.c Chase wlroots: use output commit event state 2023-11-27 21:01:53 +00:00
snap-constraints.c snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
snap.c snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
tearing.c Add tearing support (#1390) 2024-01-08 20:58:58 +00:00
theme.c osd: add theme settings for window-switcher preview 2024-04-16 09:58:34 +02:00
view-impl-common.c Remove headers not being used directly 2023-12-22 20:19:39 +00:00
view.c osd: add window-switcher custom field (#1670) 2024-04-10 23:39:31 +01:00
window-rules.c Remove headers not being used directly 2023-12-22 20:19:39 +00:00
workspaces.c workspaces.c: fix bug with RTL locales, closes #1633 2024-03-19 22:09:36 +00:00
xdg-popup.c src/xdg-popup.c: unconstrain popup within usable area 2024-03-19 10:20:03 +01:00
xdg.c snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
xwayland-unmanaged.c xwayland: remove "try to focus on parent surface" logic 2024-03-05 20:51:32 +00:00
xwayland.c xwayland: fix segv bug when starting game 2024-03-17 22:28:59 +01:00