From: SourceForge.net <no...@so...> - 2013-01-03 15:15:58
|
Bugs item #3599312, was opened at 2013-01-03 04:26 Message generated for change (Settings changed) made by wordtech You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=3599312&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 32. Key Symbols Group: current: 8.5.13 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Colin McDonald (cjmcdonald) >Assigned to: Donal K. Fellows (dkf) Summary: First Alt key event is lost - Fix Initial Comment: I'm seeing this problem on Solaris 10, but it may apply to other X11 systems with Input Methods enabled. Immediately after starting a wish application, if the first keyboard input is an Alt sequence (e.g. to open a menu) then that key binding doesn't work. The following wish script demonstrates the problem: bind . <Alt-KeyPress> {puts "Alt-KeyPress %K"} focus -force . Start wish with the above script. Type Alt+f. The binding is not fired. Enter Alt+f again and the binding works. Similarily if another key is entered before the first Alt sequence, then it works. The problem is in TkpGetKeySym in unix/tkUnixKey.c. Use of input methods short-cuts the code to find a keysym, and prevents TkpInitKeymapInfo being called on the first event. TkpInitKeymapInfo must be called to setup dispPtr->altModMask for the bindings to be matched correctly. A minor reorganisation of the code to ensure TkpInitKeymapInfo is called fixes the problem, as attached. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=3599312&group_id=12997 |