summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-01-16 21:28:16 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-01-16 21:28:16 (GMT)
commitb6a8a33706e8b40d3b7dc7560f48db43202d1078 (patch)
treed7b4ce8f295f977be4b877e798c10173488383fa /generic
parent667a7fcf4a5f46490e8edf074b9c3fbb25b42215 (diff)
downloadtk-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.c18
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;