summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clients/bokftui.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/clients/bokftui.c b/clients/bokftui.c
index ceaf525..4895704 100644
--- a/clients/bokftui.c
+++ b/clients/bokftui.c
@@ -1738,7 +1738,12 @@ static int64_t vouchers_new(struct app *a)
if (field == k) {
attron(A_REVERSE);
caret_y = hy[k];
- int cw = disp_width(hvals[k]);
+ size_t slen = strlen(hvals[k]);
+ size_t cp = (field_fresh || field_pos == (size_t)-1 ||
+ field_pos > slen)
+ ? slen
+ : field_pos;
+ int cw = (int)disp_width_n(hvals[k], cp);
caret_x = hx[k] + (cw > w ? w : cw);
}
mvaddstr(hy[k], hx[k], padded);
@@ -2888,7 +2893,12 @@ static int template_form(struct app *a, const char *load_name)
if (field == k) {
attron(A_REVERSE);
caret_y = hy[k];
- int cw = disp_width(hvals[k]);
+ size_t slen = strlen(hvals[k]);
+ size_t cp = (field_fresh || field_pos == (size_t)-1 ||
+ field_pos > slen)
+ ? slen
+ : field_pos;
+ int cw = (int)disp_width_n(hvals[k], cp);
caret_x = hx[k] + (cw > w ? w : cw);
}
mvaddstr(hy[k], hx[k], padded);