diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | generic/tkOldConfig.c | 7 |
2 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2005-08-13 Chengye Mao <chengye.geo@yahoo.com> + + * generic/tkOldConfig.c Fixed bug # 1258604. This bug was + introduced into the modfied Tk_ConfigureWidget. It failed + to properly handle the specFlags' bit TK_CONFIG_OPTION_SPECIFIED. + 2005-08-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> * generic/tkOldConfig.c (Tk_ConfigureWidget): Stop storing per-thread diff --git a/generic/tkOldConfig.c b/generic/tkOldConfig.c index 87b9d95..5db0faa 100644 --- a/generic/tkOldConfig.c +++ b/generic/tkOldConfig.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: tkOldConfig.c,v 1.14 2005/08/12 15:24:07 dkf Exp $ + * RCS: @(#) $Id: tkOldConfig.c,v 1.15 2005/08/13 20:47:46 chengyemao Exp $ */ #include "tkPort.h" @@ -209,7 +209,9 @@ Tk_ConfigureWidget(interp, tkwin, specs, argc, argv, widgRec, flags) Tcl_AddErrorInfo(interp, msg); return TCL_ERROR; } - specPtr->specFlags |= TK_CONFIG_OPTION_SPECIFIED; + if (!(flags & TK_CONFIG_ARGV_ONLY)) { + specPtr->specFlags |= TK_CONFIG_OPTION_SPECIFIED; + } } /* @@ -223,6 +225,7 @@ Tk_ConfigureWidget(interp, tkwin, specs, argc, argv, widgRec, flags) if ((specPtr->specFlags & TK_CONFIG_OPTION_SPECIFIED) || (specPtr->argvName == NULL) || (specPtr->type == TK_CONFIG_SYNONYM)) { + specPtr->specFlags &= ~TK_CONFIG_OPTION_SPECIFIED; continue; } if (((specPtr->specFlags & needFlags) != needFlags) |