summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Arigo <markarigo@gmail.com>2006-07-25 20:49:53 +0000
committerMark Arigo <markarigo@gmail.com>2006-07-25 20:49:53 +0000
commit073d73be51079078e48d51cafe79c3b87cc835ed (patch)
tree2ee5edcc2dd0512ab2e176b986dc717831eb88e8
parent85c2bfa3e47975e8f66393e70193090d946533f5 (diff)
downloadrockbox-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
-rw-r--r--apps/plugins/viewer.c34
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