Fix incorrect underlines rendering for empty lines in image editor.

Fixes #12807
Closes #12808
main
bijaykumarpun 2023-02-25 14:50:10 +05:45 zatwierdzone przez Greyson Parrelli
rodzic b437cb0344
commit 5634e9834d
1 zmienionych plików z 12 dodań i 8 usunięć

Wyświetl plik

@ -320,9 +320,9 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen
rendererContext.canvasMatrix.concat(projectionMatrix);
if (mode == Mode.HIGHLIGHT) {
if(text.isEmpty()){
if (text.isEmpty()) {
modeBounds.setEmpty();
}else{
} else {
modeBounds.set(textBounds.left - HIGHLIGHT_HORIZONTAL_PADDING,
selectionBounds.top - HIGHLIGHT_TOP_PADDING,
textBounds.right + HIGHLIGHT_HORIZONTAL_PADDING,
@ -333,13 +333,17 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen
rendererContext.canvas.drawRoundRect(modeBounds, HIGHLIGHT_CORNER_RADIUS, HIGHLIGHT_CORNER_RADIUS, modePaint);
modePaint.setAlpha(alpha);
} else if (mode == Mode.UNDERLINE) {
modeBounds.set(textBounds.left, selectionBounds.top, textBounds.right, selectionBounds.bottom);
modeBounds.inset(-DimensionUnit.DP.toPixels(2), -DimensionUnit.DP.toPixels(2));
if (text.isEmpty()) {
modeBounds.setEmpty();
} else {
modeBounds.set(textBounds.left, selectionBounds.top, textBounds.right, selectionBounds.bottom);
modeBounds.inset(-DimensionUnit.DP.toPixels(2), -DimensionUnit.DP.toPixels(2));
modeBounds.set(modeBounds.left,
Math.max(modeBounds.top, modeBounds.bottom - DimensionUnit.DP.toPixels(6)),
modeBounds.right,
modeBounds.bottom - DimensionUnit.DP.toPixels(2));
modeBounds.set(modeBounds.left,
Math.max(modeBounds.top, modeBounds.bottom - DimensionUnit.DP.toPixels(6)),
modeBounds.right,
modeBounds.bottom - DimensionUnit.DP.toPixels(2));
}
int alpha = modePaint.getAlpha();
modePaint.setAlpha(rendererContext.getAlpha(alpha));