You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reported in version: 2.0.8 Reported for operating system, platform: Linux, x86_64
Comments on the original bug report:
On 2018-07-12 16:08:45 +0000, Marc Di Luzio wrote:
Created attachment 3271
Simple reproduction file
Tested on latest tip of default (1a1133e9c7d4).
On Linux, if SDL is compiled without ibus or fcitx support, but the system does support either - ie. XMODIFIERS="@im=ibus", then X key events for held keys will be buffered at low FPS.
See the example file to repro.
Compile and link with a SDL configured with --disable-ibus and --disable-fcitx, and run on a system with either supported (Ubuntu 18.04 will do).
This was originally introduced with https://hg.libsdl.org/SDL/rev/c3874aa1f2d1, which wrapped the setting of new_xmods behind the HAVE_IBUS_IBUS_H or HAVE_FCITX_FRONTEND_H defines.
A possible patch fix will be attached i a subsequent comment, though I'm unsure if it's exactly the correct fix.
On 2018-07-12 16:10:14 +0000, Marc Di Luzio wrote:
This patch fixes the issue locally. It simple ensures SDL still sets "@im=none" on systems that have ibus/fcitx support, regardless of whether SDL itself was configured with direct support.
@@ -309,16 +307,12 @@
when it is used via XIM which causes issues. Prevent this by forcing @im=none if XMODIFIERS contains @im=ibus. IBus can still be used via
the DBus implementation, which also has support for pre-editing. */
-#ifdef HAVE_IBUS_IBUS_H
if (env_xmods && SDL_strstr(env_xmods, "@im=ibus") != NULL) {
has_dbus_ime_support = SDL_TRUE;
}
-#endif
-#ifdef HAVE_FCITX_FRONTEND_H
if (env_xmods && SDL_strstr(env_xmods, "@im=fcitx") != NULL) {
has_dbus_ime_support = SDL_TRUE;
}
-#endif
if (has_dbus_ime_support || !xkb_repeat) {
new_xmods = "@im=none";
}
On 2018-07-13 10:51:02 +0000, Marc Di Luzio wrote:
Just to add a little more info for the repro file - when running, hold a keyboard key for more than a second and see the output. Release the key, and see that the events keep repeating for an extended period of time. SDL_PollEvent should be returning true if it has events queued, but it doesn't, they're still buffered in X.
This bug report was migrated from our old Bugzilla tracker.
These attachments are available in the static archive:
Reported in version: 2.0.8
Reported for operating system, platform: Linux, x86_64
Comments on the original bug report:
On 2018-07-12 16:08:45 +0000, Marc Di Luzio wrote:
On 2018-07-12 16:10:14 +0000, Marc Di Luzio wrote:
On 2018-07-13 10:51:02 +0000, Marc Di Luzio wrote:
On 2018-07-17 15:56:20 +0000, Sam Lantinga wrote:
The text was updated successfully, but these errors were encountered: