abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/CustomLayoutEditDialog.java
diff options
context:
space:
mode:
authordzaima2026-03-06 14:44:48 +0200
committerGitHub2026-03-06 13:44:48 +0100
commit18157a1cd83f0607eb0ae787acebc2b76e2358ab (patch)
treed9f10f8cf85a7eb3ea7699e3bcf3ba769453da75 /srcs/juloo.keyboard2/CustomLayoutEditDialog.java
parent27fdcb6bfcc43d80840b777974bb5a085b4529de (diff)
downloadunexpected-keyboard-18157a1cd83f0607eb0ae787acebc2b76e2358ab.tar.gz
unexpected-keyboard-18157a1cd83f0607eb0ae787acebc2b76e2358ab.zip
Make layout text editor not redraw every frame (#1192)
Diffstat (limited to 'srcs/juloo.keyboard2/CustomLayoutEditDialog.java')
-rw-r--r--srcs/juloo.keyboard2/CustomLayoutEditDialog.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/srcs/juloo.keyboard2/CustomLayoutEditDialog.java b/srcs/juloo.keyboard2/CustomLayoutEditDialog.java
index d63cf40..5b99e97 100644
--- a/srcs/juloo.keyboard2/CustomLayoutEditDialog.java
+++ b/srcs/juloo.keyboard2/CustomLayoutEditDialog.java
@@ -98,6 +98,9 @@ public class CustomLayoutEditDialog
/** A mutable Rect object that is used during onDraw. */
Rect _clip_bounds = new Rect();
+
+ /** The currently-set left padding amount */
+ int _prev_padding = Integer.MIN_VALUE;
@Override
protected void onDraw(Canvas canvas)
@@ -105,12 +108,16 @@ public class CustomLayoutEditDialog
float digit_width = _ln_paint.measureText("0");
int line_count = getLineCount();
// Extra '+ 1' serves as padding.
- setPadding((int)(((int)Math.log10(line_count) + 1 + 1) * digit_width), 0, 0, 0);
+ int padding = (int)(((int)Math.log10(line_count) + 1 + 1) * digit_width);
+ if (padding != _prev_padding) {
+ setPadding(padding, 0, 0, 0);
+ _prev_padding = padding;
+ }
super.onDraw(canvas);
_ln_paint.setColor(getPaint().getColor());
canvas.getClipBounds(_clip_bounds);
Layout layout = getLayout();
- int offset = _clip_bounds.left + (int)(digit_width / 2.f);
+ int offset = (int)(digit_width / 2.f);
int line = layout.getLineForVertical(_clip_bounds.top);
int skipped = line;
while (line < line_count)