summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatthoyts <patthoyts@users.sourceforge.net>2009-05-21 23:01:33 (GMT)
committerpatthoyts <patthoyts@users.sourceforge.net>2009-05-21 23:01:33 (GMT)
commit473fe655bbd25c1af26b5f1f80c276a1a41e15fb (patch)
tree0fc12ef4b3de3f7adf50d3d7b3d83fb1b977d7f6
parent5a966747464966ed42006979a0db4c42d66f0799 (diff)
downloadtk-473fe655bbd25c1af26b5f1f80c276a1a41e15fb.zip
tk-473fe655bbd25c1af26b5f1f80c276a1a41e15fb.tar.gz
tk-473fe655bbd25c1af26b5f1f80c276a1a41e15fb.tar.bz2
[Bug 2794778]: backported fix for keyboard transversal of the menus on Windows.
-rw-r--r--ChangeLog5
-rw-r--r--win/tkWinMenu.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index db35c67..6bd62c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-21 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * win/tkWinMenu.c: [Bug 2794778]: Backported fix for keyboard
+ traversal of the menus on Windows.
+
2009-05-14 Pat Thoyts <patthoyts@users.sourceforge.net>
* generic/tkButton.c: [Bug 1923684]: backported checkbutton fix
diff --git a/win/tkWinMenu.c b/win/tkWinMenu.c
index 004cd14..84bd49d 100644
--- a/win/tkWinMenu.c
+++ b/win/tkWinMenu.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWinMenu.c,v 1.59.2.1 2009/02/23 10:37:38 patthoyts Exp $
+ * RCS: @(#) $Id: tkWinMenu.c,v 1.59.2.2 2009/05/21 23:01:33 patthoyts Exp $
*/
#define OEMRESOURCE
@@ -1981,14 +1981,15 @@ TkWinMenuKeyObjCmd(
virtualKey = XKeysymToKeycode(winPtr->display, keySym);
scanCode = MapVirtualKey(virtualKey, 0);
if (0 != scanCode) {
+ XKeyEvent xkey = eventPtr->xkey;
CallWindowProc(DefWindowProc, Tk_GetHWND(Tk_WindowId(tkwin)),
WM_SYSKEYDOWN, virtualKey,
(int) ((scanCode << 16) | (1 << 29)));
- if (eventPtr->xkey.nbytes > 0) {
- for (i = 0; i < eventPtr->xkey.nbytes; i++) {
+ if (xkey.nbytes > 0) {
+ for (i = 0; i < xkey.nbytes; i++) {
CallWindowProc(DefWindowProc,
Tk_GetHWND(Tk_WindowId(tkwin)), WM_SYSCHAR,
- eventPtr->xkey.trans_chars[i],
+ xkey.trans_chars[i],
(int) ((scanCode << 16) | (1 << 29)));
}
}