The Stackz Concept > General Discussion

United States-International keyboard

<< < (2/2)

OK here is what I have found out after investigating the details of your issue.

There are two concepts in the Windows XP keyboard selection process, the "language" and the "keyboard layout". The keyboard layout can be a physical keyboard layout, an input method editor (IME) for CJKV languages, or even things like speech to text converters... The language has one or several keyboard layouts assigned to it. Typically one. You have to define those two things when you add a new Windows language, first the "input language", then the "keyboard layout/IME".

What you see (and select) in the taskbar is the language, not the keyboard layout. If a language has more than one keyboard layouts assigned to it, an additional icon showing a keyboard appears next to the blue language selection icon. This icon permits to change the keyboard layout. From what I understand, this is what you are usually doing when you change between "United States-International" and "English (United States)", I assume that the language is constantly set to "EN" in both situations.

The Windows API function which I'm using in Stackz (ActivateKeyboardLayout) actually does change languages, not keyboard layouts... if there is more than one keyboard layout assigned to a language being activated, the "current" layout (i.e. the one that was used the last time) becomes active. I have not found any way to programmatically switch among the multiple keyboard layouts that are assigned to one language. I'm not even sure if there is a keyboard shortcut in Windows for that... anybody with more information, please let me know!

Due to this limitation, Stackz will only change languages, and when doing so, it will always activate the keyboard layout for the new language that was used last time.

Maybe I'll find a way to specificly change the keyboard layout later on (typically this happens shortly after posting a long and complicated workaround message just like this one), but in the meantime you can use the following workaround:  Add a new language to your system (any language should be fine as far as I understand the issue, Xhosa sounds really great... or Zulu) and assign the "other" keyboard layout to this language. This new Windows language can then be assigned to the Stackz language in the options dialog, it will then automatically get activated if such a Stackz language is edited in Stackz, and the specified keyboard layout will therefore be used.

Yes sure it's a weird workaround to add a language to the system that is only used for Stackz, but that's the only way I can think about solving the problem at the moment. The chosen language did not have any negative influences on the processed input when I tried this here on my system. The new Windows language is merely a means to hold and activate its keyboard layout. Other programs such as MS Office in fact *do* consider the language for some settings, but Stackz does only activate it in order to indirectly have its assigned keyboard layout activated, so the workaround should function correctly.

I hope that was clear, not too long, and - I hope it works in your situation. Please let me know if it fails.


[0] Message Index

[*] Previous page

Go to full version