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; }