diff options
author | lecoanet | 2003-01-20 09:51:29 +0000 |
---|---|---|
committer | lecoanet | 2003-01-20 09:51:29 +0000 |
commit | 5961692b6a2986c9d8a33b721aca586c6e24fd04 (patch) | |
tree | 86fdc810b21fd88e5abcd66fbed4e56a8068e4d3 | |
parent | 9f6d0182bcd8fd330fb8123f70d1a7ea3d0a6a6d (diff) | |
download | tkzinc-5961692b6a2986c9d8a33b721aca586c6e24fd04.zip tkzinc-5961692b6a2986c9d8a33b721aca586c6e24fd04.tar.gz tkzinc-5961692b6a2986c9d8a33b721aca586c6e24fd04.tar.bz2 tkzinc-5961692b6a2986c9d8a33b721aca586c6e24fd04.tar.xz |
* (WidgetObjCmd): Corrige une erreur Tk lorsque l'on essayait
de retrouver les callbacks associ�s � un binding vide sur
1 item. Maintenant on retourne correctment la chaine vide.
-rw-r--r-- | generic/tkZinc.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/generic/tkZinc.c b/generic/tkZinc.c index 0a1d027..696cb28 100644 --- a/generic/tkZinc.c +++ b/generic/tkZinc.c @@ -2505,7 +2505,7 @@ ZnParseCoordList(WidgetInfo *wi, /* * If first element is not a sublist, consider the whole list * as a flat array of coordinates in the old style. It can still - * be + * be a single point with or without a control flag. * If not, the list consists in sublists describing each point * with its control flag. */ @@ -3417,16 +3417,32 @@ WidgetObjCmd(ClientData client_data, /* Information about the widget. */ else if (argc == 4) { #ifdef PTK Tcl_Obj *command; + command = Tk_GetBinding(interp, wi->binding_table, elem, + Tcl_GetString(args[3])); + if (command == NULL) { + char *string = Tcl_GetString(Tcl_GetObjResult(interp)); + /* + * Ignore missing binding errors. This is a special hack + * that relies on the error message returned by FindSequence + * in tkBind.c. + */ + if (string[0] != '\0') { + goto error; + } + else { + Tcl_ResetResult(interp); + } + } + else { + Tcl_SetObjResult(interp, command); + } #else CONST char *command; -#endif - command = Tk_GetBinding(interp, wi->binding_table, elem, Tcl_GetString(args[3])); + command = Tk_GetBinding(interp, wi->binding_table, elem, + Tcl_GetString(args[3])); if (command == NULL) { goto error; } -#ifdef PTK - Tcl_SetObjResult(interp, command); -#else Tcl_SetObjResult(interp, NewStringObj(command)); #endif } |