diff options
author | das <das> | 2006-07-21 06:26:54 (GMT) |
---|---|---|
committer | das <das> | 2006-07-21 06:26:54 (GMT) |
commit | 9728e8fdd5475bc74addd754ac7cbd61123cb53a (patch) | |
tree | 9fa5fdb82fa0641825d56709626e559810f2b226 /generic | |
parent | cf71d3a5ed1a60fa9b35c48c4a3a202eb668a691 (diff) | |
download | tk-9728e8fdd5475bc74addd754ac7cbd61123cb53a.zip tk-9728e8fdd5475bc74addd754ac7cbd61123cb53a.tar.gz tk-9728e8fdd5475bc74addd754ac7cbd61123cb53a.tar.bz2 |
* generic/tkBind.c (TkBindInit): for REDO_KEYSYM_LOOKUP, change
keysym-to-string mapping hash to use first name in ks_names.h instead of
last (if there are multiple possibilities), e.g. "F11" instead of "L1".
* macosx/tkMacOSXKeyboard.c (TkpGetKeySym): correct keysyms for pure
modifier key presses [Bugs 700311, 1525905]; correct keysym for Enter
key; add keysyms for new NumLock and Fn modifiers (added 2005-08-09).
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkBind.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/generic/tkBind.c b/generic/tkBind.c index 5fd431d..4a969d0 100644 --- a/generic/tkBind.c +++ b/generic/tkBind.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkBind.c,v 1.28.2.3 2006/04/11 20:25:43 hobbs Exp $ + * RCS: @(#) $Id: tkBind.c,v 1.28.2.4 2006/07/21 06:26:54 das Exp $ */ #include "tkPort.h" @@ -761,7 +761,7 @@ TkBindInit(mainPtr) Tcl_HashEntry *hPtr; ModInfo *modPtr; EventInfo *eiPtr; - int dummy; + int newEntry; #ifdef REDO_KEYSYM_LOOKUP KeySymInfo *kPtr; @@ -769,23 +769,25 @@ TkBindInit(mainPtr) Tcl_InitHashTable(&keySymTable, TCL_STRING_KEYS); Tcl_InitHashTable(&nameTable, TCL_ONE_WORD_KEYS); for (kPtr = keyArray; kPtr->name != NULL; kPtr++) { - hPtr = Tcl_CreateHashEntry(&keySymTable, kPtr->name, &dummy); + hPtr = Tcl_CreateHashEntry(&keySymTable, kPtr->name, &newEntry); Tcl_SetHashValue(hPtr, kPtr->value); hPtr = Tcl_CreateHashEntry(&nameTable, (char *) kPtr->value, - &dummy); - Tcl_SetHashValue(hPtr, kPtr->name); + &newEntry); + if (newEntry) { + Tcl_SetHashValue(hPtr, kPtr->name); + } } #endif /* REDO_KEYSYM_LOOKUP */ Tcl_InitHashTable(&modTable, TCL_STRING_KEYS); for (modPtr = modArray; modPtr->name != NULL; modPtr++) { - hPtr = Tcl_CreateHashEntry(&modTable, modPtr->name, &dummy); + hPtr = Tcl_CreateHashEntry(&modTable, modPtr->name, &newEntry); Tcl_SetHashValue(hPtr, modPtr); } Tcl_InitHashTable(&eventTable, TCL_STRING_KEYS); for (eiPtr = eventArray; eiPtr->name != NULL; eiPtr++) { - hPtr = Tcl_CreateHashEntry(&eventTable, eiPtr->name, &dummy); + hPtr = Tcl_CreateHashEntry(&eventTable, eiPtr->name, &newEntry); Tcl_SetHashValue(hPtr, eiPtr); } initialized = 1; |