diff options
Diffstat (limited to 'apps/gui/bitmap/list.c')
-rw-r--r-- | apps/gui/bitmap/list.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index c94b6037af..f0eb2ec160 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c | |||
@@ -85,8 +85,7 @@ static bool draw_title(struct screen *display, struct gui_synclist *list) | |||
85 | title_icon.width = get_icon_width(screen) + ICON_PADDING * 2; | 85 | title_icon.width = get_icon_width(screen) + ICON_PADDING * 2; |
86 | if (IS_RTL(&title_icon)) | 86 | if (IS_RTL(&title_icon)) |
87 | { | 87 | { |
88 | title_icon.x = title_text_vp->width - ICON_PADDING - | 88 | title_icon.x = title_text_vp->width - title_icon.width; |
89 | get_icon_width(screen); | ||
90 | } | 89 | } |
91 | else | 90 | else |
92 | { | 91 | { |
@@ -156,18 +155,22 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
156 | else | 155 | else |
157 | vp.x += list_text_vp->width; | 156 | vp.x += list_text_vp->width; |
158 | display->set_viewport(&vp); | 157 | display->set_viewport(&vp); |
159 | gui_scrollbar_draw(display, 0, 0, SCROLLBAR_WIDTH-1, vp.height, | 158 | gui_scrollbar_draw(display, IS_RTL(&vp) ? 1 : 0, 0, SCROLLBAR_WIDTH-1, vp.height, |
160 | list->nb_items, list_start_item, list_start_item + end-start, | 159 | list->nb_items, list_start_item, list_start_item + end-start, |
161 | VERTICAL); | 160 | VERTICAL); |
162 | } | 161 | } |
163 | else if (show_title) | 162 | else if (show_title) |
164 | { | 163 | { |
165 | /* shift everything a bit in relation to the title... */ | 164 | /* shift everything a bit in relation to the title... */ |
166 | if (scrollbar_in_left) | 165 | if (!IS_RTL(list_text_vp) && scrollbar_in_left) |
167 | { | 166 | { |
168 | list_text_vp->width -= SCROLLBAR_WIDTH; | 167 | list_text_vp->width -= SCROLLBAR_WIDTH; |
169 | list_text_vp->x += SCROLLBAR_WIDTH; | 168 | list_text_vp->x += SCROLLBAR_WIDTH; |
170 | } | 169 | } |
170 | else if (IS_RTL(list_text_vp) && !scrollbar_in_left) | ||
171 | { | ||
172 | list_text_vp->width -= SCROLLBAR_WIDTH; | ||
173 | } | ||
171 | } | 174 | } |
172 | 175 | ||
173 | /* setup icon placement */ | 176 | /* setup icon placement */ |
@@ -181,7 +184,7 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
181 | list_icons.width = icon_width * icon_count; | 184 | list_icons.width = icon_width * icon_count; |
182 | list_text_vp->width -= list_icons.width + ICON_PADDING; | 185 | list_text_vp->width -= list_icons.width + ICON_PADDING; |
183 | if (IS_RTL(&list_icons)) | 186 | if (IS_RTL(&list_icons)) |
184 | list_icons.x += list_text_vp->width; | 187 | list_icons.x += list_text_vp->width + ICON_PADDING; |
185 | else | 188 | else |
186 | list_text_vp->x += list_icons.width + ICON_PADDING; | 189 | list_text_vp->x += list_icons.width + ICON_PADDING; |
187 | } | 190 | } |