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).
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.
Hello, is there a possibility to find out witch method in UltraToolbarManager consumes windows messages:
I would try to firue out myself, but there are a lot of event listeners in UltraToolbarManager class...
I don't believe those messages are handled by the UltraToolbarsManager. But you can check the UltraToolbarsManager.FormSubClasser class if you are using rounded forms. You can also check the UltraToolbarsManager's implementation of IMessageFilter.PreFilterMessage. These are the two places where windows messages are handled.
we hadn't tried it yet, but does 2010.1 includes this bug fix? Where can we find bugfix list, like there is one in service releases archive? :-)
Thank you in advance :-)
This bug was submitted as id TFS26003 and fixed yesterday. It is too late for this fix to make it in to the upcoming SR, so it will be included in the next SR for versions 9.1 and 9.2.
Well, I couldn't find anything weird in PreFilterMessage implementation... So I'm out of ideas... :-(