diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-01-16 21:28:16 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-01-16 21:28:16 (GMT) |
commit | b6a8a33706e8b40d3b7dc7560f48db43202d1078 (patch) | |
tree | d7b4ce8f295f977be4b877e798c10173488383fa /generic | |
parent | 667a7fcf4a5f46490e8edf074b9c3fbb25b42215 (diff) | |
download | tk-b6a8a33706e8b40d3b7dc7560f48db43202d1078.zip tk-b6a8a33706e8b40d3b7dc7560f48db43202d1078.tar.gz tk-b6a8a33706e8b40d3b7dc7560f48db43202d1078.tar.bz2 |
(partial) fix for [026e2bb685]: text tag sets bad relief, gets error, but bad relief is saved anyway. -relief and -justify is working now, but other options hstill have the same problem
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkTextTag.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/generic/tkTextTag.c b/generic/tkTextTag.c index 4126a49..2cd0d55 100644 --- a/generic/tkTextTag.c +++ b/generic/tkTextTag.c @@ -394,16 +394,30 @@ TkTextTagCmd( &tagPtr->relief) != TCL_OK) { ckfree(tagPtr->reliefString); tagPtr->reliefString = NULL; + if ((unsigned)tagPtr->relief <= TK_RELIEF_SUNKEN) { + const char *reliefString = Tk_NameOfRelief(tagPtr->relief); + tagPtr->reliefString = ckalloc(strlen(reliefString)+1); + strcpy(tagPtr->reliefString, reliefString); + } return TCL_ERROR; } + } else { + tagPtr->relief = TK_RELIEF_NULL; } if (tagPtr->justifyString != NULL) { if (Tk_GetJustify(interp, tagPtr->justifyString, &tagPtr->justify) != TCL_OK) { ckfree(tagPtr->justifyString); tagPtr->justifyString = NULL; + if ((unsigned)tagPtr->justify <= (unsigned)TK_JUSTIFY_CENTER) { + const char *justifyString = Tk_NameOfJustify(tagPtr->justify); + tagPtr->justifyString = ckalloc(strlen(justifyString)+1); + strcpy(tagPtr->justifyString, justifyString); + } return TCL_ERROR; } + } else { + tagPtr->justify = (Tk_Justify)-1; } if (tagPtr->lMargin1String != NULL) { if (Tk_GetPixels(interp, textPtr->tkwin, @@ -1036,13 +1050,13 @@ TkTextCreateTag( tagPtr->borderWidth = 0; tagPtr->borderWidthPtr = NULL; tagPtr->reliefString = NULL; - tagPtr->relief = TK_RELIEF_FLAT; + tagPtr->relief = TK_RELIEF_NULL; tagPtr->bgStipple = None; tagPtr->fgColor = NULL; tagPtr->tkfont = NULL; tagPtr->fgStipple = None; tagPtr->justifyString = NULL; - tagPtr->justify = TK_JUSTIFY_LEFT; + tagPtr->justify = (Tk_Justify)-1; tagPtr->lMargin1String = NULL; tagPtr->lMargin1 = 0; tagPtr->lMargin2String = NULL; |