Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lcd.sizeText(XXLSIZE) changed it's vertical position on LVGL compared to LCD version #5608

Open
1 task done
offer-shmuely opened this issue Oct 12, 2024 · 3 comments
Open
1 task done
Labels
bug 🪲 Something isn't working triage Bug report awaiting review / sorting

Comments

@offer-shmuely
Copy link
Contributor

Is there an existing issue for this problem?

  • I have searched the existing issues

What part of EdgeTX is the focus of this bug?

Transmitter firmware

Current Behavior

in LVGL the 32px font (XXLSIZE) is placed asymmetrically on the vertical line,

Expected Behavior

in LVGL the 32px font (XXLSIZE) should be placed symmetrically on the vertical line
the same as non-lvgl version

Steps To Reproduce

local function update(wgt, options)
    wgt.options = options
    lytZone2 = {}
    local text = "FONT XXLSIZE"
    local ts_w1, ts_h1 = lcd.sizeText(text, XXLSIZE)
    lytZone2[#lytZone2+1] = {type="label", text=text, x=10, y=100, font=XXLSIZE, color=WHITE}
    lytZone2[#lytZone2+1] = {type="rectangle", x=10, y=100, w=ts_w1, h=ts_h1, color=BLUE, filled=false}
    lvgl.build(lytZone2)
end

Version

Nightly (Please give date/commit below)

Transmitter

RadioMaster TX16S / TX16SMK2

Operating System (OS)

Windows

OS Version

win11

Anything else?

image

@offer-shmuely offer-shmuely added bug 🪲 Something isn't working triage Bug report awaiting review / sorting labels Oct 12, 2024
@offer-shmuely
Copy link
Contributor Author

offer-shmuely commented Oct 12, 2024

sample code: WIDGETS.ZIP

Note:
the right side is my code trying to fix the old issue of lcd.sizeText() is too conservative, it will keep a lot of spares

image

image

@philmoz
Copy link
Collaborator

philmoz commented Oct 31, 2024

This is because the legacy 'lcd' text drawing function adds an offset when drawing the XL and XXL font characters.
The lvgl text rendering does not add this magic offset.

The comments indicate this was done for compatibility with 2.3.x.

The magic offset is also added to the 'getTextSize()' function for the XL and XXL fonts.

Currently text drawn with XXL looks like this (note the waste space at the top):
screenshot_t15_24-10-31_22-12-14

It should look like this:
screenshot_t15_24-10-31_22-08-36

IMO this magic offset should be removed, although this may change the way some existing scripts look.

@offer-shmuely
Copy link
Contributor Author

since anyone using lvgl is changing code anyway, I see no issue of backward compatibility here,
So it is better make the textSize as accurate as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🪲 Something isn't working triage Bug report awaiting review / sorting
Projects
None yet
Development

No branches or pull requests

2 participants