vidconsole: Avoid kerning against an unrelated character

When the cursor position changes, kerning should not be used for the
next character, since it can make the first displayed character shuffle
left or right a bit.

Clear the kern character when setting the position.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-04-02 06:29:44 +13:00
committed by Tom Rini
parent f94f1f4b8c
commit 7703cfe025
2 changed files with 5 additions and 0 deletions

View File

@@ -490,10 +490,12 @@ static int console_truetype_backspace(struct udevice *dev)
static int console_truetype_entry_start(struct udevice *dev)
{
struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev);
struct console_tt_priv *priv = dev_get_priv(dev);
/* A new input line has start, so clear our history */
priv->pos_ptr = 0;
vc_priv->last_ch = 0;
return 0;
}

View File

@@ -127,6 +127,9 @@ void vidconsole_set_cursor_pos(struct udevice *dev, int x, int y)
priv->xcur_frac = VID_TO_POS(x);
priv->xstart_frac = priv->xcur_frac;
priv->ycur = y;
/* make sure not to kern against the previous character */
priv->last_ch = 0;
vidconsole_entry_start(dev);
}