Skip alignment in tables

This commit is contained in:
M66B 2020-11-06 13:57:11 +01:00
parent a8c222ddf6
commit 550362e4c3
1 changed files with 28 additions and 15 deletions

View File

@ -2129,23 +2129,36 @@ public class HtmlHelper {
setSpan(ssb, new StrikethroughSpan(), start, ssb.length());
break;
case "text-align":
// https://developer.mozilla.org/en-US/docs/Web/CSS/text-align
Layout.Alignment alignment = null;
switch (value) {
case "left":
case "start":
alignment = (ltr ? Layout.Alignment.ALIGN_NORMAL : Layout.Alignment.ALIGN_OPPOSITE);
break;
case "center":
alignment = Layout.Alignment.ALIGN_CENTER;
break;
case "right":
case "end":
alignment = (ltr ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL);
boolean table = false;
Element e = element;
while (e != null) {
if ("table".equals(e.tagName()) ||
"true".equals(e.attr("x-table"))) {
table = true;
break;
}
e = e.parent();
}
// https://developer.mozilla.org/en-US/docs/Web/CSS/text-align
if (!table) {
Layout.Alignment alignment = null;
switch (value) {
case "left":
case "start":
alignment = (ltr ? Layout.Alignment.ALIGN_NORMAL : Layout.Alignment.ALIGN_OPPOSITE);
break;
case "center":
alignment = Layout.Alignment.ALIGN_CENTER;
break;
case "right":
case "end":
alignment = (ltr ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL);
break;
}
if (alignment != null)
setSpan(ssb, new AlignmentSpan.Standard(alignment), start, ssb.length());
}
if (alignment != null)
setSpan(ssb, new AlignmentSpan.Standard(alignment), start, ssb.length());
break;
}
}