https://bugs.kde.org/show_bug.cgi?id=523450
Bug ID: 523450
Summary: Dead key composition fails when the dead key is
pressed before the preceding key is released
Classification: Plasma
Product: kwin
Version First 6.7.3
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: input
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
Created attachment 194581
--> https://bugs.kde.org/attachment.cgi?id=194581&action=edit
Combined log file containing: Application key/text log showing the visible
result "sí si". Filtered WAYLAND_DEBUG=client log showing commit_string("í")
for the working sequence and a regular I ke
SUMMARY
Dead-key composition fails deterministically if the dead key is
pressed while the preceding ordinary key is still physically held.
This happens naturally when typing quickly because adjacent key
presses and releases commonly overlap.
The problem appeared after upgrading to Plasma/KWin 6.7.3.
STEPS TO REPRODUCE
Working sequence:
1. Press S
2. Release S
3. Press dead_acute (´)
4. Release dead_acute
5. Press I
6. Release I
Result: "sí"
Failing sequence:
1. Press S
2. While S is still physically held, press dead_acute (´)
3. Release S
4. Release dead_acute
5. Press I
6. Release I
Result: "si"
ACTUAL RESULT
If dead_acute is pressed before the preceding S key is released,
the accent is ignored and the result is "si".
EXPECTED RESULT
Both sequences should produce "sí".
The release event of a preceding ordinary key should not prevent or
cancel dead-key composition. Overlapping adjacent keystrokes is normal
when typing quickly.
REPRODUCIBILITY
The problem is reproducible whenever I deliberately use the failing
sequence described above.
It also happens intermittently during normal fast typing.
ADDITIONAL INFORMATION
The problem:
- Occurs in different applications.
- Occurs on two different laptops.
- Occurs with both internal and external keyboards.
- Did not occur before the upgrade.
- Occurs in a Plasma Wayland session.
- Occurs with Slow Keys, Bounce Keys and Sticky Keys disabled.
- Occurs without IBus running.
- Is not specific to one physical keyboard.
SYSTEM INFORMATION
Fedora 44
Plasma 6.7.3
KWin 6.7.3
plasma-workspace-6.7.3-1.fc44.x86_64
kwin-6.7.3-1.fc44.x86_64
libxkbcommon-1.13.1-2.fc44.x86_64
xkeyboard-config-2.47-1.fc44.noarch
ibus-1.5.34-4.fc44.x86_64
Session type: Wayland
LANG=gl_ES.UTF-8
XKB layout: es
XKB model: pc105
DEBUGGING INFORMATION
I reproduced both sequences in the same GTK test application while
running it with WAYLAND_DEBUG=client.
For the working sequence, the Wayland text-input protocol commits the
composed character:
zwp_text_input_v3.preedit_string(nil, 0, 0)
zwp_text_input_v3.commit_string("í")
zwp_text_input_v3.done(...)
The application text becomes "sí".
For the failing overlapping sequence, no composed character is
committed. The client receives a normal I key event instead:
wl_keyboard.key(..., 23, 1)
wl_keyboard.key(..., 23, 0)
The application text becomes "sí si".
The attached log file documents the resulting difference. Because
these are client-side logs, they do not by themselves show whether
KWin received the physical dead-key event in the failing case. The
physical ordering described in the reproduction steps was performed
deliberately.
Attachment:
dead-key-logs.txt
Combined log file containing:
- Application key/text log showing the visible result "sí si"
- Filtered WAYLAND_DEBUG=client log showing commit_string("í")
for the working sequence and a regular I key event for the
failing sequence
--
You are receiving this mail because:
You are watching all bug changes.