From 7edf7399c55b3292a9a28fcf2c1ac0230cec8dea Mon Sep 17 00:00:00 2001 From: chengyemao Date: Sat, 13 Aug 2005 20:47:46 +0000 Subject: Fixed bug # 1258604 --- ChangeLog | 6 ++++++ generic/tkOldConfig.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05e0fcd..d105916 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-08-13 Chengye Mao + + * 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 * 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) -- cgit v0.12