diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/bitmap/list.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index 52d4847730..efca22832d 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c | |||
@@ -110,7 +110,7 @@ static bool draw_title(struct screen *display, struct gui_synclist *list) | |||
110 | void list_draw(struct screen *display, struct gui_synclist *list) | 110 | void list_draw(struct screen *display, struct gui_synclist *list) |
111 | { | 111 | { |
112 | struct viewport list_icons; | 112 | struct viewport list_icons; |
113 | int start, end, line_height, style, i; | 113 | int start, end, line_height, style, i, scrollbar_in_left; |
114 | const int screen = display->screen_type; | 114 | const int screen = display->screen_type; |
115 | const int icon_width = get_icon_width(screen) + ICON_PADDING; | 115 | const int icon_width = get_icon_width(screen) + ICON_PADDING; |
116 | const bool show_cursor = !global_settings.cursor_style && | 116 | const bool show_cursor = !global_settings.cursor_style && |
@@ -134,7 +134,10 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
134 | 134 | ||
135 | start = list->start_item[screen]; | 135 | start = list->start_item[screen]; |
136 | end = start + viewport_get_nb_lines(&list_text[screen]); | 136 | end = start + viewport_get_nb_lines(&list_text[screen]); |
137 | 137 | ||
138 | scrollbar_in_left = | ||
139 | (!is_rtl && global_settings.scrollbar == SCROLLBAR_SHOW) || | ||
140 | (is_rtl && global_settings.scrollbar == SCROLLBAR_SHOW_OPPOSITE); | ||
138 | /* draw the scrollbar if its needed */ | 141 | /* draw the scrollbar if its needed */ |
139 | if (global_settings.scrollbar && | 142 | if (global_settings.scrollbar && |
140 | viewport_get_nb_lines(&list_text[screen]) < list->nb_items) | 143 | viewport_get_nb_lines(&list_text[screen]) < list->nb_items) |
@@ -146,15 +149,10 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
146 | viewport_get_nb_lines(&list_text[screen]); | 149 | viewport_get_nb_lines(&list_text[screen]); |
147 | vp.x = parent->x; | 150 | vp.x = parent->x; |
148 | list_text[screen].width -= SCROLLBAR_WIDTH; | 151 | list_text[screen].width -= SCROLLBAR_WIDTH; |
149 | if (!is_rtl && global_settings.scrollbar == SCROLLBAR_SHOW || | 152 | if (scrollbar_in_left) |
150 | is_rtl && global_settings.scrollbar == SCROLLBAR_SHOW_OPPOSITE) | ||
151 | { | ||
152 | list_text[screen].x += SCROLLBAR_WIDTH; | 153 | list_text[screen].x += SCROLLBAR_WIDTH; |
153 | } | ||
154 | else | 154 | else |
155 | { | ||
156 | vp.x += list_text[screen].width; | 155 | vp.x += list_text[screen].width; |
157 | } | ||
158 | display->set_viewport(&vp); | 156 | display->set_viewport(&vp); |
159 | gui_scrollbar_draw(display, 0, 0, SCROLLBAR_WIDTH-1, | 157 | gui_scrollbar_draw(display, 0, 0, SCROLLBAR_WIDTH-1, |
160 | vp.height, list->nb_items, | 158 | vp.height, list->nb_items, |
@@ -164,9 +162,8 @@ void list_draw(struct screen *display, struct gui_synclist *list) | |||
164 | } | 162 | } |
165 | else if (show_title) | 163 | else if (show_title) |
166 | { | 164 | { |
167 | /* shift everything right a bit... */ | 165 | /* shift everything a bit in relation to the title... */ |
168 | if (!is_rtl && global_settings.scrollbar == SCROLLBAR_SHOW || | 166 | if (scrollbar_in_left) |
169 | is_rtl && global_settings.scrollbar == SCROLLBAR_SHOW_OPPOSITE) | ||
170 | { | 167 | { |
171 | list_text[screen].width -= SCROLLBAR_WIDTH; | 168 | list_text[screen].width -= SCROLLBAR_WIDTH; |
172 | list_text[screen].x += SCROLLBAR_WIDTH; | 169 | list_text[screen].x += SCROLLBAR_WIDTH; |