summaryrefslogtreecommitdiffstats
path: root/generic/tkBind.c
diff options
context:
space:
mode:
authordas <das>2006-07-21 06:26:54 (GMT)
committerdas <das>2006-07-21 06:26:54 (GMT)
commit9728e8fdd5475bc74addd754ac7cbd61123cb53a (patch)
tree9fa5fdb82fa0641825d56709626e559810f2b226 /generic/tkBind.c
parentcf71d3a5ed1a60fa9b35c48c4a3a202eb668a691 (diff)
downloadtk-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/tkBind.c')
-rw-r--r--generic/tkBind.c16
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;