"Nerijus Baliunas" nerijus@users.sourceforge.net wrote:
In my XF86Config-4 I have: Option "XkbLayout" "lt" Option "XkbOptions" "grp:ctrl_shift_toggle" - it means Ctrl+Shift switches layouts.
I switched layouts 2 times in notepad. Without patch:
err:keyboard:X11DRV_ToUnicode Please report: no char for keysym FE0A (ISO_Prev_Group) : err:keyboard:X11DRV_ToUnicode (virtKey=10,scanCode=2A,keycode=32,state=5) err:keyboard:X11DRV_ToUnicode Please report: no char for keysym FE0A (ISO_Prev_Group) : err:keyboard:X11DRV_ToUnicode (virtKey=10,scanCode=2A,keycode=32,state=5)
With patch: err:keyboard:X11DRV_ToUnicode Please report: no char for keysym FE0A (ISO_Prev_Group) : err:keyboard:X11DRV_ToUnicode (virtKey=10,scanCode=2A,keycode=32,state=5) err:keyboard:X11DRV_ToUnicode Please report: no char for keysym FE0A (ISO_Prev_Group) : err:keyboard:X11DRV_ToUnicode (virtKey=10,scanCode=2A,keycode=32,state=2005)
As you see, with patch "state" is different when switching layout second time.
Sure. Wine corrects state according to its internal lpKeyState. Difference between internal and actual state value is due to the fact that Wine does not see (or better X does not show) some keyboard events. Since I also have "grp:ctrl_shift_toggle" I had seen the same state correction.
Perhaps Wine should ignore ISO_Prev_Group/ISO_Next_Group keyboard events to not confuse users.
-- Dmitry.