Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sdl.m4 #95

Merged
merged 1 commit into from Jun 9, 2021
Merged

Add sdl.m4 #95

merged 1 commit into from Jun 9, 2021

Conversation

lanodan
Copy link
Contributor

@lanodan lanodan commented Jun 9, 2021

Copied from SDL-1.2, the equivalent in SDL2 is similar enough that licensing
shouldn't be an issue.

It is needed to use autoconf on software like smpeg, which has been used to
test this.

Copied from SDL-1.2, the equivalent in SDL2 is similar enough that licensing
shouldn't be an issue.

It is needed to use autoconf on software like smpeg, which has been used to
test this.
@slouken slouken merged commit 7e83bd0 into libsdl-org:main Jun 9, 2021
sulix added a commit to sulix/sdl12-compat that referenced this pull request Nov 5, 2021
SDL 1.2 seems to only account for (non-en_US) keyboard layouts on some
platforms and configurations. In particular, the KeySym may contain the
translated key, or may contain a "scancode" which is layout-independent.

In particular, on X11 the configured layout is used, but only (it seems)
if it is the only configured layout. (On systems where multiple layouts
are configured, the US layout is used regardless of the configured one.)
Similarly, the windib backend deliberately forces the US layout in order
to match the DirectX backend, which only provides scancodes.

Since this behaviour is very inconsistant between different
configurations, this patch provides a way of configuring which is used
at runtime:

If the SDL12COMPAT_USE_KEYBOARD_LAYOUT environment variable is set to a
nonzero value, sdl12compat will translate keyboard input according to
the current layout. This matches SDL 1.2 on X11 with only one configured
layout. Otherwise (the default), sdl12compat will use SDL2 scancodes for
keyboard input, essentially forcing all input to the US layout. This
matches SDL 1.2 on Windows, and on X11 with multiple configured layouts.

Regardless of the value of this environment variable, the 'unicode'
value will be affected by keyboard layout.

For discussion and more details see:
- sdl12compat issue libsdl-org#135: Non-US Keyboard layouts not supported
  libsdl-org#135
- sdl12compat PR libsdl-org#97: Use Scancodes instead of Keycodes
  libsdl-org#97
- SDL 1.2 issue libsdl-org#95: windib returns locale dependent SDLK_ codes
  libsdl-org/SDL-1.2#95
sulix added a commit to sulix/sdl12-compat that referenced this pull request Nov 6, 2021
SDL 1.2 seems to only account for (non-en_US) keyboard layouts on some
platforms and configurations. In particular, the KeySym may contain the
translated key, or may contain a "scancode" which is layout-independent.

In particular, on X11 the configured layout is used, but only (it seems)
if it is the only configured layout. (On systems where multiple layouts
are configured, the US layout is used regardless of the configured one.)
Similarly, the windib backend deliberately forces the US layout in order
to match the DirectX backend, which only provides scancodes.

Since this behaviour is very inconsistant between different
configurations, this patch provides a way of configuring which is used
at runtime:

If the SDL12COMPAT_USE_KEYBOARD_LAYOUT environment variable is set to a
nonzero value, sdl12compat will translate keyboard input according to
the current layout. This matches SDL 1.2 on X11 with only one configured
layout. Otherwise (the default), sdl12compat will use SDL2 scancodes for
keyboard input, essentially forcing all input to the US layout. This
matches SDL 1.2 on Windows, and on X11 with multiple configured layouts.

Regardless of the value of this environment variable, the 'unicode'
value will be affected by keyboard layout.

For discussion and more details see:
- sdl12compat issue libsdl-org#135: Non-US Keyboard layouts not supported
  libsdl-org#135
- sdl12compat PR libsdl-org#97: Use Scancodes instead of Keycodes
  libsdl-org#97
- SDL 1.2 issue libsdl-org#95: windib returns locale dependent SDLK_ codes
  libsdl-org/SDL-1.2#95
slouken pushed a commit that referenced this pull request Nov 6, 2021
SDL 1.2 seems to only account for (non-en_US) keyboard layouts on some
platforms and configurations. In particular, the KeySym may contain the
translated key, or may contain a "scancode" which is layout-independent.

In particular, on X11 the configured layout is used, but only (it seems)
if it is the only configured layout. (On systems where multiple layouts
are configured, the US layout is used regardless of the configured one.)
Similarly, the windib backend deliberately forces the US layout in order
to match the DirectX backend, which only provides scancodes.

Since this behaviour is very inconsistant between different
configurations, this patch provides a way of configuring which is used
at runtime:

If the SDL12COMPAT_USE_KEYBOARD_LAYOUT environment variable is set to a
nonzero value, sdl12compat will translate keyboard input according to
the current layout. This matches SDL 1.2 on X11 with only one configured
layout. Otherwise (the default), sdl12compat will use SDL2 scancodes for
keyboard input, essentially forcing all input to the US layout. This
matches SDL 1.2 on Windows, and on X11 with multiple configured layouts.

Regardless of the value of this environment variable, the 'unicode'
value will be affected by keyboard layout.

For discussion and more details see:
- sdl12compat issue #135: Non-US Keyboard layouts not supported
  #135
- sdl12compat PR #97: Use Scancodes instead of Keycodes
  #97
- SDL 1.2 issue #95: windib returns locale dependent SDLK_ codes
  libsdl-org/SDL-1.2#95
@lanodan lanodan deleted the bugfix/missing-m4 branch December 8, 2021 00:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants