summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/skin_engine/skin_render.c9
-rw-r--r--apps/screen_access.c4
-rw-r--r--apps/screen_access.h2
3 files changed, 10 insertions, 5 deletions
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 67f1f0f..28483cb 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -779,7 +779,9 @@ void skin_render_viewport(struct skin_element* viewport, struct gui_wps *gwps,
if (refresh_type && needs_update)
{
if (info.force_redraw)
- display->scroll_stop_viewport_line(&skin_viewport->vp, info.line_number);
+ display->scroll_stop_viewport_rect(&skin_viewport->vp,
+ 0, info.line_number*display->getcharheight(),
+ skin_viewport->vp.width, display->getcharheight());
write_line(display, align, info.line_number,
info.line_scrolls, info.text_style);
}
@@ -967,8 +969,11 @@ void skin_render_playlistviewer(struct playlistviewer* viewer,
/* only update if the line needs to be, and there is something to write */
if (refresh_type && needs_update)
{
+ struct viewport *vp = SKINOFFSETTOPTR(skin_buffer, viewer->vp);
if (!info.force_redraw)
- display->scroll_stop_viewport_line(&skin_viewport->vp, info.line_number);
+ display->scroll_stop_viewport_rect(vp,
+ 0, info.line_number*display->getcharheight(),
+ vp->width, display->getcharheight());
write_line(display, align, info.line_number,
info.line_scrolls, info.text_style);
}
diff --git a/apps/screen_access.c b/apps/screen_access.c
index 161e596..f454e0a 100644
--- a/apps/screen_access.c
+++ b/apps/screen_access.c
@@ -247,9 +247,9 @@ struct screen screens[NB_SCREENS] =
.scroll_delay=&lcd_scroll_delay,
.clear_display=&lcd_clear_display,
.clear_viewport=&lcd_clear_viewport,
+ .scroll_stop_viewport_rect=&lcd_scroll_stop_viewport_rect,
.scroll_stop=&lcd_scroll_stop,
.scroll_stop_viewport=&lcd_scroll_stop_viewport,
- .scroll_stop_viewport_line=&lcd_scroll_stop_viewport_line,
.update=&lcd_update,
.update_viewport=&lcd_update_viewport,
.backlight_on=&backlight_on,
@@ -348,9 +348,9 @@ struct screen screens[NB_SCREENS] =
.scroll_delay=&lcd_remote_scroll_delay,
.clear_display=&lcd_remote_clear_display,
.clear_viewport=&lcd_remote_clear_viewport,
+ .scroll_stop_viewport_rect=&lcd_remote_scroll_stop_viewport_rect,
.scroll_stop=&lcd_remote_scroll_stop,
.scroll_stop_viewport=&lcd_remote_scroll_stop_viewport,
- .scroll_stop_viewport_line=&lcd_remote_scroll_stop_viewport_line,
.update=&lcd_remote_update,
.update_viewport=&lcd_remote_update_viewport,
.backlight_on=&remote_backlight_on,
diff --git a/apps/screen_access.h b/apps/screen_access.h
index 448437c..90b63ea 100644
--- a/apps/screen_access.h
+++ b/apps/screen_access.h
@@ -149,7 +149,7 @@ struct screen
void (*clear_viewport)(void);
void (*scroll_stop)(void);
void (*scroll_stop_viewport)(const struct viewport *vp);
- void (*scroll_stop_viewport_line)(const struct viewport *vp, int line);
+ void (*scroll_stop_viewport_rect)(const struct viewport* vp, int x, int y, int width, int height);
void (*update)(void);
void (*update_viewport)(void);
void (*backlight_on)(void);