summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshihisa Uchida <uchida@rockbox.org>2010-06-26 12:17:01 +0000
committerYoshihisa Uchida <uchida@rockbox.org>2010-06-26 12:17:01 +0000
commit17383c2691bfb121388c539bebe8b32bb97e4e9b (patch)
tree35285f69f22a82386c0cebbb37a26521b5f24bf7
parente0bb92f00fdbcfd726407c688f5d82d3fa470a99 (diff)
downloadrockbox-17383c2691bfb121388c539bebe8b32bb97e4e9b.tar.gz
rockbox-17383c2691bfb121388c539bebe8b32bb97e4e9b.zip
text viewer: some modify text viewer's layout and preferences.
- layout: hader, footer and horizontal_scrollbar add padding. - add member 'statusbar' in tv_preferences. - delete HD_SBAR/HD_BOTH/FT_SBAR/FT_BOTH. - deletes the function to check header_mode/footer_mode. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27142 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/text_viewer/tv_display.c41
-rw-r--r--apps/plugins/text_viewer/tv_menu.c25
-rw-r--r--apps/plugins/text_viewer/tv_preferences.c7
-rw-r--r--apps/plugins/text_viewer/tv_preferences.h6
-rw-r--r--apps/plugins/text_viewer/tv_settings.c48
-rw-r--r--apps/plugins/text_viewer/tv_window.c44
6 files changed, 82 insertions, 89 deletions
diff --git a/apps/plugins/text_viewer/tv_display.c b/apps/plugins/text_viewer/tv_display.c
index 78b5b4b074..253bb0b222 100644
--- a/apps/plugins/text_viewer/tv_display.c
+++ b/apps/plugins/text_viewer/tv_display.c
@@ -48,14 +48,12 @@
48 * |statusbar (6) | 48 * |statusbar (6) |
49 * +-------------------------+ 49 * +-------------------------+
50 * 50 *
51 * (1) displays when rb->global_settings->statusbar == STATUSBAR_TOP 51 * (1) displays when rb->global_settings->statusbar == STATUSBAR_TOP.
52 * and preferences->header_mode is HD_SBAR or HD_BOTH. 52 * (2) displays when preferences->header_mode is HD_PATH.
53 * (2) displays when preferences->header_mode is HD_PATH or HD_BOTH.
54 * (3) displays when preferences->vertical_scrollbar is SB_ON. 53 * (3) displays when preferences->vertical_scrollbar is SB_ON.
55 * (4) displays when preferences->horizontal_scrollbar is SB_ON. 54 * (4) displays when preferences->horizontal_scrollbar is SB_ON.
56 * (5) displays when preferences->footer_mode is FT_PAGE or FT_BOTH. 55 * (5) displays when preferences->footer_mode is FT_PAGE.
57 * (6) displays when rb->global_settings->statusbar == STATUSBAR_BOTTOM 56 * (6) displays when rb->global_settings->statusbar == STATUSBAR_BOTTOM.
58 * and preferences->footer_mode is FT_SBAR or FT_BOTH.
59 * 57 *
60 * 58 *
61 * when isn't defined HAVE_LCD_BITMAP 59 * when isn't defined HAVE_LCD_BITMAP
@@ -115,7 +113,7 @@ void tv_show_header(void)
115{ 113{
116 unsigned header_mode = header_mode; 114 unsigned header_mode = header_mode;
117 115
118 if (preferences->header_mode == HD_PATH || preferences->header_mode == HD_BOTH) 116 if (preferences->header_mode == HD_PATH)
119 display->putsxy(header.x, header.y, preferences->file_name); 117 display->putsxy(header.x, header.y, preferences->file_name);
120} 118}
121 119
@@ -124,13 +122,13 @@ void tv_show_footer(const struct tv_screen_pos *pos)
124 unsigned char buf[12]; 122 unsigned char buf[12];
125 unsigned footer_mode = preferences->footer_mode; 123 unsigned footer_mode = preferences->footer_mode;
126 124
127 if (footer_mode == FT_PAGE || footer_mode == FT_BOTH) 125 if (footer_mode == FT_PAGE)
128 { 126 {
129 if (pos->line == 0) 127 if (pos->line == 0)
130 rb->snprintf(buf, sizeof(buf), "%d", pos->page + 1); 128 rb->snprintf(buf, sizeof(buf), "%d", pos->page + 1);
131 else 129 else
132 rb->snprintf(buf, sizeof(buf), "%d - %d", pos->page + 1, pos->page + 2); 130 rb->snprintf(buf, sizeof(buf), "%d - %d", pos->page + 1, pos->page + 2);
133 display->putsxy(footer.x, footer.y, buf); 131 display->putsxy(footer.x, footer.y + 1, buf);
134 } 132 }
135} 133}
136 134
@@ -153,7 +151,7 @@ void tv_show_scrollbar(int window, int col, off_t cur_pos, int size)
153 max_shown = min_shown + display_columns; 151 max_shown = min_shown + display_columns;
154 152
155 rb->gui_scrollbar_draw(display, 153 rb->gui_scrollbar_draw(display,
156 horizontal_scrollbar.x, horizontal_scrollbar.y, 154 horizontal_scrollbar.x, horizontal_scrollbar.y + 1,
157 horizontal_scrollbar.w, TV_SCROLLBAR_HEIGHT, 155 horizontal_scrollbar.w, TV_SCROLLBAR_HEIGHT,
158 items, min_shown, max_shown, HORIZONTAL); 156 items, min_shown, max_shown, HORIZONTAL);
159 } 157 }
@@ -166,7 +164,7 @@ void tv_show_scrollbar(int window, int col, off_t cur_pos, int size)
166 164
167 rb->gui_scrollbar_draw(display, 165 rb->gui_scrollbar_draw(display,
168 vertical_scrollbar.x, vertical_scrollbar.y, 166 vertical_scrollbar.x, vertical_scrollbar.y,
169 TV_SCROLLBAR_WIDTH-1, vertical_scrollbar.h, 167 TV_SCROLLBAR_WIDTH, vertical_scrollbar.h,
170 items, min_shown, max_shown, VERTICAL); 168 items, min_shown, max_shown, VERTICAL);
171 } 169 }
172} 170}
@@ -236,6 +234,7 @@ void tv_end_display(void)
236 234
237void tv_clear_display(void) 235void tv_clear_display(void)
238{ 236{
237 rb->lcd_set_backdrop(NULL);
239 display->clear_viewport(); 238 display->clear_viewport();
240} 239}
241 240
@@ -251,22 +250,20 @@ void tv_set_layout(int col_w)
251#endif 250#endif
252{ 251{
253#ifdef HAVE_LCD_BITMAP 252#ifdef HAVE_LCD_BITMAP
254 int scrollbar_width = (show_scrollbar)? TV_SCROLLBAR_WIDTH : 0; 253 int scrollbar_width = (show_scrollbar)? TV_SCROLLBAR_WIDTH + 1 : 0;
255 int scrollbar_height = (preferences->horizontal_scrollbar)? TV_SCROLLBAR_HEIGHT : 0; 254 int scrollbar_height = (preferences->horizontal_scrollbar)? TV_SCROLLBAR_HEIGHT + 1 : 0;
256 unsigned header_mode = preferences->header_mode;
257 unsigned footer_mode = preferences->footer_mode;
258 255
259 row_height = preferences->font->height; 256 row_height = preferences->font->height;
260 257
261 header.x = 0; 258 header.x = 0;
262 header.y = 0; 259 header.y = 1;
263 header.w = vp_info.width; 260 header.w = vp_info.width;
264 header.h = (header_mode == HD_PATH || header_mode == HD_BOTH)? row_height : 0; 261 header.h = (preferences->header_mode == HD_PATH)? row_height + 1 : 0;
265 262
266 footer.x = 0; 263 footer.x = 0;
267 footer.w = vp_info.width; 264 footer.w = vp_info.width;
268 footer.h = (footer_mode == FT_PAGE || footer_mode == FT_BOTH)? row_height : 0; 265 footer.h = (preferences->footer_mode == FT_PAGE)? row_height + 1 : 0;
269 footer.y = vp_info.height - footer.h; 266 footer.y = vp_info.height - 1 - footer.h;
270 267
271 drawarea.x = scrollbar_width; 268 drawarea.x = scrollbar_width;
272 drawarea.y = header.y + header.h; 269 drawarea.y = header.y + header.h;
@@ -312,17 +309,13 @@ void tv_change_viewport(void)
312{ 309{
313#ifdef HAVE_LCD_BITMAP 310#ifdef HAVE_LCD_BITMAP
314 struct viewport vp; 311 struct viewport vp;
315 bool show_statusbar = (preferences->header_mode == HD_SBAR ||
316 preferences->header_mode == HD_BOTH ||
317 preferences->footer_mode == FT_SBAR ||
318 preferences->footer_mode == FT_BOTH);
319 312
320 if (is_initialized_vp) 313 if (is_initialized_vp)
321 tv_undo_viewport(); 314 tv_undo_viewport();
322 else 315 else
323 is_initialized_vp = true; 316 is_initialized_vp = true;
324 317
325 rb->viewportmanager_theme_enable(SCREEN_MAIN, show_statusbar, &vp); 318 rb->viewportmanager_theme_enable(SCREEN_MAIN, preferences->statusbar, &vp);
326 vp_info = vp; 319 vp_info = vp;
327 vp_info.flags &= ~VP_FLAG_ALIGNMENT_MASK; 320 vp_info.flags &= ~VP_FLAG_ALIGNMENT_MASK;
328 321
diff --git a/apps/plugins/text_viewer/tv_menu.c b/apps/plugins/text_viewer/tv_menu.c
index c90386aabc..2e3a26d785 100644
--- a/apps/plugins/text_viewer/tv_menu.c
+++ b/apps/plugins/text_viewer/tv_menu.c
@@ -223,13 +223,10 @@ static bool tv_header_setting(void)
223 { 223 {
224 {"None", -1}, 224 {"None", -1},
225 {"File path", -1}, 225 {"File path", -1},
226 {"Status bar", -1},
227 {"Both", -1},
228 }; 226 };
229 227
230 int len = (rb->global_settings->statusbar == STATUSBAR_TOP)? 4 : 2;
231 return rb->set_option("Show Header", &new_prefs.header_mode, INT, 228 return rb->set_option("Show Header", &new_prefs.header_mode, INT,
232 names, len, NULL); 229 names, 2, NULL);
233} 230}
234 231
235static bool tv_footer_setting(void) 232static bool tv_footer_setting(void)
@@ -238,13 +235,21 @@ static bool tv_footer_setting(void)
238 { 235 {
239 {"None", -1}, 236 {"None", -1},
240 {"Page Num", -1}, 237 {"Page Num", -1},
241 {"Status bar", -1},
242 {"Both", -1},
243 }; 238 };
244 239
245 int len = (rb->global_settings->statusbar == STATUSBAR_BOTTOM)? 4 : 2;
246 return rb->set_option("Show Footer", &new_prefs.footer_mode, INT, 240 return rb->set_option("Show Footer", &new_prefs.footer_mode, INT,
247 names, len, NULL); 241 names, 2, NULL);
242}
243
244static bool tv_statusbar_setting(void)
245{
246 static const struct opt_items names[] = {
247 {"No", -1},
248 {"Yes", -1},
249 };
250
251 return rb->set_option("Show Statusbar", &new_prefs.statusbar, BOOL,
252 names, 2, NULL);
248} 253}
249 254
250static bool tv_font_setting(void) 255static bool tv_font_setting(void)
@@ -319,6 +324,8 @@ MENUITEM_FUNCTION(header_item, 0, "Show Header", tv_header_setting,
319 NULL, NULL, Icon_NOICON); 324 NULL, NULL, Icon_NOICON);
320MENUITEM_FUNCTION(footer_item, 0, "Show Footer", tv_footer_setting, 325MENUITEM_FUNCTION(footer_item, 0, "Show Footer", tv_footer_setting,
321 NULL, NULL, Icon_NOICON); 326 NULL, NULL, Icon_NOICON);
327MENUITEM_FUNCTION(statusbar_item, 0, "Show Statusbar", tv_statusbar_setting,
328 NULL, NULL, Icon_NOICON);
322MENUITEM_FUNCTION(font_item, 0, "Font", tv_font_setting, 329MENUITEM_FUNCTION(font_item, 0, "Font", tv_font_setting,
323 NULL, NULL, Icon_NOICON); 330 NULL, NULL, Icon_NOICON);
324#endif 331#endif
@@ -329,7 +336,7 @@ MAKE_MENU(option_menu, "Viewer Options", NULL, Icon_NOICON,
329 &encoding_item, &word_wrap_item, &line_mode_item, &windows_item, 336 &encoding_item, &word_wrap_item, &line_mode_item, &windows_item,
330 &alignment_item, 337 &alignment_item,
331#ifdef HAVE_LCD_BITMAP 338#ifdef HAVE_LCD_BITMAP
332 &header_item, &footer_item, &font_item, 339 &header_item, &footer_item, &font_item, &statusbar_item,
333#endif 340#endif
334 &scroll_menu, &indent_spaces_item); 341 &scroll_menu, &indent_spaces_item);
335 342
diff --git a/apps/plugins/text_viewer/tv_preferences.c b/apps/plugins/text_viewer/tv_preferences.c
index 72cda9d00f..a90c72d8e9 100644
--- a/apps/plugins/text_viewer/tv_preferences.c
+++ b/apps/plugins/text_viewer/tv_preferences.c
@@ -58,6 +58,7 @@ static void tv_notify_change_preferences(const struct tv_preferences *oldp)
58#ifdef HAVE_LCD_BITMAP 58#ifdef HAVE_LCD_BITMAP
59 (oldp->header_mode != preferences->header_mode) || 59 (oldp->header_mode != preferences->header_mode) ||
60 (oldp->footer_mode != preferences->footer_mode) || 60 (oldp->footer_mode != preferences->footer_mode) ||
61 (oldp->statusbar != preferences->statusbar) ||
61 (rb->strcmp(oldp->font_name, preferences->font_name)) || 62 (rb->strcmp(oldp->font_name, preferences->font_name)) ||
62#endif 63#endif
63 (rb->strcmp(oldp->file_name, preferences->file_name))) 64 (rb->strcmp(oldp->file_name, preferences->file_name)))
@@ -99,13 +100,15 @@ void tv_set_default_preferences(struct tv_preferences *p)
99 p->horizontal_scrollbar = SB_OFF; 100 p->horizontal_scrollbar = SB_OFF;
100 p->vertical_scrollbar = SB_OFF; 101 p->vertical_scrollbar = SB_OFF;
101#ifdef HAVE_LCD_BITMAP 102#ifdef HAVE_LCD_BITMAP
102 p->header_mode = HD_BOTH; 103 p->header_mode = HD_PATH;
103 p->footer_mode = FT_BOTH; 104 p->footer_mode = FT_PAGE;
105 p->statusbar = true;
104 rb->strlcpy(p->font_name, rb->global_settings->font_file, MAX_PATH); 106 rb->strlcpy(p->font_name, rb->global_settings->font_file, MAX_PATH);
105 p->font = rb->font_get(FONT_UI); 107 p->font = rb->font_get(FONT_UI);
106#else 108#else
107 p->header_mode = HD_NONE; 109 p->header_mode = HD_NONE;
108 p->footer_mode = FT_NONE; 110 p->footer_mode = FT_NONE;
111 p->statusbar = false;
109#endif 112#endif
110 p->autoscroll_speed = 1; 113 p->autoscroll_speed = 1;
111 p->narrow_mode = NM_PAGE; 114 p->narrow_mode = NM_PAGE;
diff --git a/apps/plugins/text_viewer/tv_preferences.h b/apps/plugins/text_viewer/tv_preferences.h
index ee861ee6b6..d1ba7f25b4 100644
--- a/apps/plugins/text_viewer/tv_preferences.h
+++ b/apps/plugins/text_viewer/tv_preferences.h
@@ -59,8 +59,6 @@ enum {
59enum { 59enum {
60 HD_NONE = 0, 60 HD_NONE = 0,
61 HD_PATH, 61 HD_PATH,
62 HD_SBAR,
63 HD_BOTH,
64}; 62};
65 63
66/* footer_mode */ 64/* footer_mode */
@@ -68,8 +66,6 @@ enum {
68 66
69 FT_NONE = 0, 67 FT_NONE = 0,
70 FT_PAGE, 68 FT_PAGE,
71 FT_SBAR,
72 FT_BOTH,
73}; 69};
74 70
75/* horizontal_scroll_mode */ 71/* horizontal_scroll_mode */
@@ -114,6 +110,8 @@ struct tv_preferences {
114 110
115 unsigned indent_spaces; 111 unsigned indent_spaces;
116 112
113 bool statusbar;
114
117#ifdef HAVE_LCD_BITMAP 115#ifdef HAVE_LCD_BITMAP
118 unsigned char font_name[MAX_PATH]; 116 unsigned char font_name[MAX_PATH];
119 struct font *font; 117 struct font *font;
diff --git a/apps/plugins/text_viewer/tv_settings.c b/apps/plugins/text_viewer/tv_settings.c
index 93f16b5a66..56c0bbe7ce 100644
--- a/apps/plugins/text_viewer/tv_settings.c
+++ b/apps/plugins/text_viewer/tv_settings.c
@@ -42,15 +42,16 @@
42 * vertical_scrollbar 1 42 * vertical_scrollbar 1
43 * (unused) 1 (for compatibility) 43 * (unused) 1 (for compatibility)
44 * page_mode 1 44 * page_mode 1
45 * page_number_mode 1 45 * header_mode 1
46 * title_mode 1 46 * footer_mode 1
47 * scroll_mode 1 47 * scroll_mode 1
48 * autoscroll_speed 1 48 * autoscroll_speed 1
49 * horizontal_scrollbar 1 49 * horizontal_scrollbar 1
50 * horizontal_scroll_mode 1 50 * horizontal_scroll_mode 1
51 * narrow_mode 1 51 * narrow_mode 1
52 * indent_spaces 1 52 * indent_spaces 1
53 * (reserved) 12 53 * statusbar 1
54 * (reserved) 11
54 * font name MAX_PATH 55 * font name MAX_PATH
55 */ 56 */
56 57
@@ -58,7 +59,7 @@
58#define TV_GLOBAL_SETTINGS_FILE VIEWERS_DIR "/tv_global.dat" 59#define TV_GLOBAL_SETTINGS_FILE VIEWERS_DIR "/tv_global.dat"
59 60
60#define TV_GLOBAL_SETTINGS_HEADER "\x54\x56\x47\x53" /* "TVGS" */ 61#define TV_GLOBAL_SETTINGS_HEADER "\x54\x56\x47\x53" /* "TVGS" */
61#define TV_GLOBAL_SETTINGS_VERSION 0x37 62#define TV_GLOBAL_SETTINGS_VERSION 0x38
62#define TV_GLOBAL_SETTINGS_HEADER_SIZE 5 63#define TV_GLOBAL_SETTINGS_HEADER_SIZE 5
63#define TV_GLOBAL_SETTINGS_FIRST_VERSION 0x31 64#define TV_GLOBAL_SETTINGS_FIRST_VERSION 0x31
64 65
@@ -92,7 +93,8 @@
92 * horizontal_scroll_mode 1 93 * horizontal_scroll_mode 1
93 * narrow_mode 1 94 * narrow_mode 1
94 * indent_spaces 1 95 * indent_spaces 1
95 * (reserved) 12 96 * statusbar 1
97 * (reserved) 11
96 * font name MAX_PATH 98 * font name MAX_PATH
97 * bookmark count 1 99 * bookmark count 1
98 * [1st bookmark] 100 * [1st bookmark]
@@ -114,7 +116,7 @@
114#define TV_SETTINGS_TMP_FILE VIEWERS_DIR "/tv_file.tmp" 116#define TV_SETTINGS_TMP_FILE VIEWERS_DIR "/tv_file.tmp"
115 117
116#define TV_SETTINGS_HEADER "\x54\x56\x53" /* "TVS" */ 118#define TV_SETTINGS_HEADER "\x54\x56\x53" /* "TVS" */
117#define TV_SETTINGS_VERSION 0x38 119#define TV_SETTINGS_VERSION 0x39
118#define TV_SETTINGS_HEADER_SIZE 4 120#define TV_SETTINGS_HEADER_SIZE 4
119#define TV_SETTINGS_FIRST_VERSION 0x32 121#define TV_SETTINGS_FIRST_VERSION 0x32
120 122
@@ -156,8 +158,34 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre
156 /* skip need_scrollbar */ 158 /* skip need_scrollbar */
157 p++; 159 p++;
158 prefs->page_mode = *p++; 160 prefs->page_mode = *p++;
159 prefs->header_mode = *p++; 161
160 prefs->footer_mode = *p++; 162 if (version < 7)
163 {
164 prefs->statusbar = false;
165 if (*p > 1)
166 {
167 prefs->header_mode = (*p & 1);
168 prefs->statusbar = true;
169 }
170 else
171 prefs->header_mode = *p;
172
173 if (*(++p) > 1)
174 {
175 prefs->footer_mode = (*p & 1);
176 prefs->statusbar = true;
177 }
178 else
179 prefs->footer_mode = *p;
180
181 p++;
182 }
183 else
184 {
185 prefs->header_mode = *p++;
186 prefs->footer_mode = *p++;
187 }
188
161 prefs->vertical_scroll_mode = *p++; 189 prefs->vertical_scroll_mode = *p++;
162 prefs->autoscroll_speed = *p++; 190 prefs->autoscroll_speed = *p++;
163 191
@@ -181,6 +209,9 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre
181 else 209 else
182 prefs->indent_spaces = 2; 210 prefs->indent_spaces = 2;
183 211
212 if (version > 6)
213 prefs->statusbar = (*p++ != 0);
214
184#ifdef HAVE_LCD_BITMAP 215#ifdef HAVE_LCD_BITMAP
185 rb->memcpy(prefs->font_name, buf + read_size - MAX_PATH, MAX_PATH); 216 rb->memcpy(prefs->font_name, buf + read_size - MAX_PATH, MAX_PATH);
186 217
@@ -212,6 +243,7 @@ static bool tv_write_preferences(int pfd, const struct tv_preferences *prefs)
212 *p++ = prefs->horizontal_scroll_mode; 243 *p++ = prefs->horizontal_scroll_mode;
213 *p++ = prefs->narrow_mode; 244 *p++ = prefs->narrow_mode;
214 *p++ = prefs->indent_spaces; 245 *p++ = prefs->indent_spaces;
246 *p++ = prefs->statusbar;
215 247
216#ifdef HAVE_LCD_BITMAP 248#ifdef HAVE_LCD_BITMAP
217 rb->memcpy(buf + 28, prefs->font_name, MAX_PATH); 249 rb->memcpy(buf + 28, prefs->font_name, MAX_PATH);
diff --git a/apps/plugins/text_viewer/tv_window.c b/apps/plugins/text_viewer/tv_window.c
index df3951aa28..16be8845ef 100644
--- a/apps/plugins/text_viewer/tv_window.c
+++ b/apps/plugins/text_viewer/tv_window.c
@@ -52,40 +52,6 @@ static bool tv_set_font(const unsigned char *font)
52 } 52 }
53 return true; 53 return true;
54} 54}
55
56static bool tv_check_header_and_footer(struct tv_preferences *new_prefs)
57{
58 bool change_prefs = false;
59
60 if (rb->global_settings->statusbar != STATUSBAR_TOP)
61 {
62 if (new_prefs->header_mode == HD_SBAR)
63 {
64 new_prefs->header_mode = HD_NONE;
65 change_prefs = true;
66 }
67 else if (new_prefs->header_mode == HD_BOTH)
68 {
69 new_prefs->header_mode = HD_PATH;
70 change_prefs = true;
71 }
72 }
73 if (rb->global_settings->statusbar != STATUSBAR_BOTTOM)
74 {
75 if (new_prefs->footer_mode == FT_SBAR)
76 {
77 new_prefs->footer_mode = FT_NONE;
78 change_prefs = true;
79 }
80 else if (new_prefs->footer_mode == FT_BOTH)
81 {
82 new_prefs->footer_mode = FT_PAGE;
83 change_prefs = true;
84 }
85 }
86
87 return change_prefs;
88}
89#endif 55#endif
90 56
91static void tv_show_bookmarks(const struct tv_screen_pos *top_pos) 57static void tv_show_bookmarks(const struct tv_screen_pos *top_pos)
@@ -177,7 +143,6 @@ static void tv_change_preferences(const struct tv_preferences *oldp)
177#else 143#else
178 static bool font_changing = false; 144 static bool font_changing = false;
179 const unsigned char *font_str; 145 const unsigned char *font_str;
180 bool change_prefs = false;
181 bool need_vertical_scrollbar; 146 bool need_vertical_scrollbar;
182 struct tv_preferences new_prefs; 147 struct tv_preferences new_prefs;
183 tv_copy_preferences(&new_prefs); 148 tv_copy_preferences(&new_prefs);
@@ -191,16 +156,11 @@ static void tv_change_preferences(const struct tv_preferences *oldp)
191 if (!tv_set_font(preferences->font_name)) 156 if (!tv_set_font(preferences->font_name))
192 { 157 {
193 rb->strlcpy(new_prefs.font_name, font_str, MAX_PATH); 158 rb->strlcpy(new_prefs.font_name, font_str, MAX_PATH);
194 change_prefs = true; 159 tv_set_preferences(&new_prefs);
160 return;
195 } 161 }
196 } 162 }
197 163
198 if (tv_check_header_and_footer(&new_prefs) || change_prefs)
199 {
200 tv_set_preferences(&new_prefs);
201 return;
202 }
203
204 font_changing = false; 164 font_changing = false;
205#endif 165#endif
206 166