[Bugfix] lua FS#13940 - FONT_UI using last selected font instead of the UI font
rockbox-gerrit-noreply--- via rockbox-cvs <[email protected]> Mon, 29 Jun 2026 01:09:21 -0400
| Newsgroups | gmane.comp.systems.archos.rockbox.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit b99b2e98df4346182582ad05f00fa15e7c44b54b Author: William Wilgus <[email protected]> Date: Mon Jun 29 01:06:34 2026 -0400 [Bugfix] lua FS#13940 - FONT_UI using last selected font instead of the UI font FONT_UI is a placeholder when it gets assigned it isn't resolved immediately when its time to resolve the font it is processed with font_get(int font) first it sets it to the last slot and then decrements till it gets a valid font Change-Id: I3c203d58ed2d813d206f5b435e6b55ed196cf213 diff --git a/apps/plugins/lua/rockaux.c b/apps/plugins/lua/rockaux.c index 86abf5c456..725e9c1d14 100644 --- a/apps/plugins/lua/rockaux.c +++ b/apps/plugins/lua/rockaux.c @@ -71,6 +71,12 @@ int splash_scroller(int timeout, const char* str) struct viewport *last_vp = rb->lcd_set_viewport(&vp); int fontnum = vp.font; + if (fontnum == FONT_UI) + { + fontnum = rb->global_status->font_id[SCREEN_MAIN]; + if (fontnum == FONT_SYSFIXED) + fontnum = FONT_UI; + } font_getstringsize("W", &ch_w, &ch_h, fontnum); const int max_w = LCD_WIDTH; diff --git a/apps/plugins/lua/rocklib_img.c b/apps/plugins/lua/rocklib_img.c index a47e319a85..7cc9741a42 100644 --- a/apps/plugins/lua/rocklib_img.c +++ b/apps/plugins/lua/rocklib_img.c @@ -1575,6 +1575,14 @@ static inline struct viewport* opt_viewport(lua_State *L, vp->height = check_tablevalue(L, "height", narg); } vp->font = check_tablevalue_def(L, "font", narg, FONT_UI); + + if (vp->font == FONT_UI) + { + vp->font = rb->global_status->font_id[SCREEN_MAIN]; + if (vp->font == FONT_SYSFIXED) + vp->font = FONT_UI; + } + vp->drawmode = check_tablevalue_def(L, "drawmode", narg, DRMODE_SOLID); #if LCD_DEPTH == 2 @@ -1618,9 +1626,11 @@ RB_WRAP(font_getstringsize) int w, h, result; if (fontnumber == FONT_UI) + { fontnumber = rb->global_status->font_id[SCREEN_MAIN]; - else if (fontnumber < 0) - fontnumber = FONT_SYSFIXED; + if (fontnumber == FONT_SYSFIXED) + fontnumber = FONT_UI; + } if lua_isnoneornil(L, 2) result = RB_SCREENS(L, 3, getstringsize, str, &w, &h); @@ -1648,6 +1658,12 @@ RB_WRAP(lcd_framebuffer) RB_WRAP(lcd_setfont) { int font = (int) luaL_checkint(L, 1); + if (font == FONT_UI) + { + font = rb->global_status->font_id[SCREEN_MAIN]; + if (font == FONT_SYSFIXED) + font = FONT_UI; + } RB_SCREENS(L, 2, setfont, font); return 0; } -- rockbox-cvs mailing list [email protected] https://lists.haxx.se/mailman/listinfo/rockbox-cvs