diff options
| author | dzaima | 2026-03-06 14:44:48 +0200 |
|---|---|---|
| committer | GitHub | 2026-03-06 13:44:48 +0100 |
| commit | 18157a1cd83f0607eb0ae787acebc2b76e2358ab (patch) | |
| tree | d9f10f8cf85a7eb3ea7699e3bcf3ba769453da75 /srcs/juloo.keyboard2/CustomLayoutEditDialog.java | |
| parent | 27fdcb6bfcc43d80840b777974bb5a085b4529de (diff) | |
| download | unexpected-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.java | 11 |
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) |
