diff options
Diffstat (limited to 'apps/plugins/rockpaint.c')
-rw-r--r-- | apps/plugins/rockpaint.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c index d1cc8f272a..7938273ba0 100644 --- a/apps/plugins/rockpaint.c +++ b/apps/plugins/rockpaint.c | |||
@@ -1016,7 +1016,6 @@ static bool browse_fonts( char *dst, int dst_size ) | |||
1016 | size_t siz; | 1016 | size_t siz; |
1017 | reset_font = true; | 1017 | reset_font = true; |
1018 | rb->snprintf( bbuf, MAX_PATH, FONT_DIR "/%s", e->name ); | 1018 | rb->snprintf( bbuf, MAX_PATH, FONT_DIR "/%s", e->name ); |
1019 | rb->font_load(NULL, bbuf ); | ||
1020 | rb->font_getstringsize( e->name, &fw, &fh, FONT_UI ); | 1019 | rb->font_getstringsize( e->name, &fw, &fh, FONT_UI ); |
1021 | if( fw > LCD_WIDTH ) fw = LCD_WIDTH; | 1020 | if( fw > LCD_WIDTH ) fw = LCD_WIDTH; |
1022 | siz = (sizeof(struct font_preview) + fw*fh*FB_DATA_SZ+3) & ~3; | 1021 | siz = (sizeof(struct font_preview) + fw*fh*FB_DATA_SZ+3) & ~3; |
@@ -1083,7 +1082,7 @@ static bool browse_fonts( char *dst, int dst_size ) | |||
1083 | li = tree->filesindir-1; | 1082 | li = tree->filesindir-1; |
1084 | if( reset_font ) | 1083 | if( reset_font ) |
1085 | { | 1084 | { |
1086 | rb->font_load(NULL, bbuf_s ); | 1085 | // fixme rb->font_load(NULL, bbuf_s ); |
1087 | reset_font = false; | 1086 | reset_font = false; |
1088 | } | 1087 | } |
1089 | if( lvi-fvi+1 < tree->filesindir ) | 1088 | if( lvi-fvi+1 < tree->filesindir ) |
@@ -1636,6 +1635,7 @@ static void show_grid( bool update ) | |||
1636 | static void draw_text( int x, int y ) | 1635 | static void draw_text( int x, int y ) |
1637 | { | 1636 | { |
1638 | int selected = 0; | 1637 | int selected = 0; |
1638 | int current_font_id = rb->global_status->font_id[SCREEN_MAIN]; | ||
1639 | buffer->text.text[0] = '\0'; | 1639 | buffer->text.text[0] = '\0'; |
1640 | buffer->text.font[0] = '\0'; | 1640 | buffer->text.font[0] = '\0'; |
1641 | while( 1 ) | 1641 | while( 1 ) |
@@ -1648,9 +1648,12 @@ static void draw_text( int x, int y ) | |||
1648 | break; | 1648 | break; |
1649 | 1649 | ||
1650 | case TEXT_MENU_FONT: | 1650 | case TEXT_MENU_FONT: |
1651 | if( browse_fonts( buffer->text.font, MAX_PATH ) ) | 1651 | if (current_font_id != rb->global_status->font_id[SCREEN_MAIN]) |
1652 | rb->font_unload(current_font_id); | ||
1653 | if(browse_fonts( buffer->text.font, MAX_PATH ) ) | ||
1652 | { | 1654 | { |
1653 | rb->font_load(NULL, buffer->text.font ); | 1655 | current_font_id = rb->font_load(buffer->text.font ); |
1656 | rb->lcd_setfont(current_font_id); | ||
1654 | } | 1657 | } |
1655 | break; | 1658 | break; |
1656 | 1659 | ||
@@ -1704,7 +1707,9 @@ static void draw_text( int x, int y ) | |||
1704 | rb->snprintf( buffer->text.font, MAX_PATH, | 1707 | rb->snprintf( buffer->text.font, MAX_PATH, |
1705 | FONT_DIR "/%s.fnt", | 1708 | FONT_DIR "/%s.fnt", |
1706 | rb->global_settings->font_file ); | 1709 | rb->global_settings->font_file ); |
1707 | rb->font_load(NULL, buffer->text.font ); | 1710 | if (current_font_id != rb->global_status->font_id[SCREEN_MAIN]) |
1711 | rb->font_unload(current_font_id); | ||
1712 | rb->lcd_setfont(FONT_UI); | ||
1708 | } | 1713 | } |
1709 | return; | 1714 | return; |
1710 | } | 1715 | } |