From 9b175fa0dd28cf671688aa23243ca6ac72c284ed Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 8 Sep 2021 16:07:46 -0400 Subject: [PATCH] Add some padding to text selection. --- .../imageeditor/renderers/MultiLineTextRenderer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java b/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java index efcd8a211..5553443dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java @@ -32,6 +32,8 @@ import static java.util.Collections.emptyList; */ public final class MultiLineTextRenderer extends InvalidateableRenderer implements ColorableRenderer, SelectableRenderer { + private static final float HIT_PADDING = ViewUtil.dpToPx(30); + @NonNull private String text = ""; @@ -155,6 +157,7 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen private final Matrix inverseProjectionMatrix = new Matrix(); private final RectF selectionBounds = new RectF(); private final RectF textBounds = new RectF(); + private final RectF hitBounds = new RectF(); private String text; private int selStart; @@ -175,6 +178,12 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen getTextBoundsWithoutTrim(text, 0, text.length(), temp); textBounds.set(temp); + hitBounds.set(textBounds); + + hitBounds.left -= HIT_PADDING; + hitBounds.right += HIT_PADDING; + hitBounds.top -= HIT_PADDING; + hitBounds.bottom += HIT_PADDING; maxTextBounds.set(textBounds); float widthLimit = 150 * textScale; @@ -266,7 +275,7 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen inverseProjectionMatrix.mapPoints(dst, new float[]{ x, y }); - return textBounds.contains(dst[0], dst[1]); + return hitBounds.contains(dst[0], dst[1]); } void setText(String text) {