diff options
author | Mark Arigo <markarigo@gmail.com> | 2006-07-25 20:49:53 +0000 |
---|---|---|
committer | Mark Arigo <markarigo@gmail.com> | 2006-07-25 20:49:53 +0000 |
commit | 073d73be51079078e48d51cafe79c3b87cc835ed (patch) | |
tree | 2ee5edcc2dd0512ab2e176b986dc717831eb88e8 /apps | |
parent | 85c2bfa3e47975e8f66393e70193090d946533f5 (diff) | |
download | rockbox-073d73be51079078e48d51cafe79c3b87cc835ed.tar.gz rockbox-073d73be51079078e48d51cafe79c3b87cc835ed.zip |
Fixes text viewer column advance when in wide mode using play+left/right button combo (bug #5685)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10327 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/viewer.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c index af35638bfc..607d805693 100644 --- a/apps/plugins/viewer.c +++ b/apps/plugins/viewer.c | |||
@@ -839,18 +839,16 @@ static void viewer_draw(int col) | |||
839 | if (line_width > col) { | 839 | if (line_width > col) { |
840 | str = oldstr = line_begin; | 840 | str = oldstr = line_begin; |
841 | k = col; | 841 | k = col; |
842 | while (k > 0) { | ||
843 | str = crop_at_width(str); | ||
844 | k-=draw_columns; | ||
845 | } | ||
846 | |||
847 | oldstr=line_begin=str; | ||
848 | |||
849 | width = 0; | 842 | width = 0; |
850 | while( (width<draw_columns) && (oldstr<line_end) ) | 843 | while( (width<draw_columns) && (oldstr<line_end) ) |
851 | { | 844 | { |
852 | oldstr = get_ucs(oldstr, &ch); | 845 | oldstr = get_ucs(oldstr, &ch); |
853 | width += glyph_width(ch); | 846 | if (k > 0) { |
847 | k -= glyph_width(ch); | ||
848 | line_begin = oldstr; | ||
849 | } else { | ||
850 | width += glyph_width(ch); | ||
851 | } | ||
854 | } | 852 | } |
855 | 853 | ||
856 | if(prefs.view_mode==WIDE) | 854 | if(prefs.view_mode==WIDE) |
@@ -1355,18 +1353,22 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1355 | #ifdef VIEWER_COLUMN_LEFT | 1353 | #ifdef VIEWER_COLUMN_LEFT |
1356 | case VIEWER_COLUMN_LEFT: | 1354 | case VIEWER_COLUMN_LEFT: |
1357 | case VIEWER_COLUMN_LEFT | BUTTON_REPEAT: | 1355 | case VIEWER_COLUMN_LEFT | BUTTON_REPEAT: |
1358 | /* Scroll left one column */ | 1356 | if (prefs.view_mode == WIDE) { |
1359 | col -= glyph_width('o'); | 1357 | /* Scroll left one column */ |
1360 | col = col_limit(col); | 1358 | col -= glyph_width('o'); |
1361 | viewer_draw(col); | 1359 | col = col_limit(col); |
1360 | viewer_draw(col); | ||
1361 | } | ||
1362 | break; | 1362 | break; |
1363 | 1363 | ||
1364 | case VIEWER_COLUMN_RIGHT: | 1364 | case VIEWER_COLUMN_RIGHT: |
1365 | case VIEWER_COLUMN_RIGHT | BUTTON_REPEAT: | 1365 | case VIEWER_COLUMN_RIGHT | BUTTON_REPEAT: |
1366 | /* Scroll right one column */ | 1366 | if (prefs.view_mode == WIDE) { |
1367 | col += glyph_width('o'); | 1367 | /* Scroll right one column */ |
1368 | col = col_limit(col); | 1368 | col += glyph_width('o'); |
1369 | viewer_draw(col); | 1369 | col = col_limit(col); |
1370 | viewer_draw(col); | ||
1371 | } | ||
1370 | break; | 1372 | break; |
1371 | #endif | 1373 | #endif |
1372 | 1374 | ||