summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2021-04-07 06:59:23 -0400
committerSolomon Peachy <pizza@shaftnet.org>2021-04-07 11:02:00 +0000
commit8b56476a2c4125e6deda36edff179f92972b7bb3 (patch)
treef70633ddfe02de4fadc0aaa3206a1883ff3e54aa /apps
parent28c89386af8ea9d002bcc25483233053fe0e7525 (diff)
list: After drawing scrollbars, explcitly switch back to old viewport.
The viewport used for the scrollbar is allocated on the stack, and falls out of scope before the next call to set_viewport(), which sets a flag in the now-out-of-scope "last" viewport. Change-Id: I2c8bfcff500d189fa3857411aadc2e16aa545d2c
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/bitmap/list.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index aeaceb2780..6f6a8c1f7f 100644
--- a/apps/gui/bitmap/list.c
+++ b/apps/gui/bitmap/list.c
@@ -203,11 +203,12 @@ void list_draw(struct screen *display, struct gui_synclist *list)
vp.x += list_text_vp->width;
else /* left */
list_text_vp->x += SCROLLBAR_WIDTH;
- display->set_viewport(&vp);
+ struct viewport *last = display->set_viewport(&vp);
gui_scrollbar_draw(display,
(scrollbar_in_left? 0: 1), 0, SCROLLBAR_WIDTH-1, vp.height,
list->nb_items, list_start_item, list_start_item + nb_lines,
VERTICAL);
+ display->set_viewport(last);
}
/* shift everything a bit in relation to the title */
else if (!VP_IS_RTL(list_text_vp) && scrollbar_in_left)