Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
270
Custom Keyboard Layout and ability to enter spec characters
posted

Hi,

we have a problem. Our customers in Latvia at corporate environment cannot change Regional Settings and uses custom Keyborad Layout (created with The Microsoft Keyboard Layout Creator). And they cannot enter special Latvian letters using programs with Infragistics controls from WinForms 9.2 version.

 

Detailed description:

1. http://home.mira.net/~ints/free.html (download link http://home.mira.net/~ints/lv_it_u.zip). This is a link tocustom  Keyboard Layout, that our customers use.

2. In Regional and Language Options (Windows XP) Advanced tab "language for non unicode programs" setting value is "English (United States)". In Vista the same problem also can be reprodused.

3. After a WinForm "FormLoad" event and before "FormShown" event UltraToolbarManager does something with fonts / keyborad layout / current thread or I some other object (I do not know exactly) that disables entering special Latvian characters from keyboard.

4. Special latvian characters with this custom keyboard layout is entered like this:

'a == ā

'n == ņ

's == š

so you type aposthrophe, than press according keybord letter and get a needed character.

 

I am attaching my simple project that I reproduce error with. I also add a screen shot of regional settings card. Red rectangles shows what settings are set. After setting language for non unicode programs you must restart windows.

To reproduce:

1. Install http://home.mira.net/~ints/lv_it_u.zip keyboard layout driver (we tested with WinXP 32 bit and WinVista32 bit).

2. Set English as default language for non unicode programs.

3. Check "Apply all settings to the current user account and to the default user profile" (do not know if this step is necesarry).

4. Restart PC for changes to take effect.

5. Load attached project. After dialog box "001" loads - set windows input language (keyboard layout) to LV (using ALT+SHIFT or mouse).

6. Type 'a 'n 'k 's 'z in ultraTextEditor1. ultraTextEditor shows ā ņ ķ š ž

7. Close form "001".

8. In forms "002" ultraTextEditor1 type 'a 'n 'k 's 'z. ultraTextEditor shows a n k š ž.

So š and ž letters can by typed in, but other letters - cannot.

This bug was first noticed in 9.2 win forms release. 8.3 version did not have this problem.

I tried 9.2.1007, 9.2.2042 hot fixes - bug reproduces in both of them.

 

Thank you for your time. I hope you can suggest some quick wokraround (besides going back to 8.3 WinToolbarManager). 

latvian_test.zip
Parents
No Data
Reply
  • 270
    posted

    I think the problem is somwhere in WindowsMessages handling.

    If application has no UltraToolbarManager - o can catch those messages:

    msg=0x50 (WM_INPUTLANGCHANGEREQUEST) hwnd=0x11113c wparam=0x1 lparam=0x8090809 result=0x0

    msg=0x282 (WM_IME_NOTIFY) hwnd=0x11113c wparam=0x1 lparam=0x0 result=0x0

    msg=0x282 (WM_IME_NOTIFY) hwnd=0x11113c wparam=0x2 lparam=0x0 result=0x0

    msg=0x51 (WM_INPUTLANGCHANGE) hwnd=0x11113c wparam=0x0 lparam=0x8090809 result=0x0

     

    If an application has UltraToolbarManager no messages

    WM_INPUTLANGCHANGEREQUEST

    WM_INPUTLANGCHANGE

    even gets to Form, that has  UltraToolbarManager.

     

    I am trying to investigate Infragistics source code by myself, but I'm not very lucky :-)

     

    Have a nice Christmas eve.

Children