summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <qball@gmpclient.org>2017-05-24 08:10:03 +0200
committerDave Davenport <qball@gmpclient.org>2017-05-24 08:10:03 +0200
commit7639153ad6d6061348f695b601825b7e12a59599 (patch)
tree168a9eb2426cbcf4021ab6dba0e525e118182ca5
parenta4694cf808ade4cb818bf8af6e3ac15f2087b3f7 (diff)
Change page-up/page-down behaviour for barview mode.
-rw-r--r--source/widgets/listview.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/widgets/listview.c b/source/widgets/listview.c
index 391f4194..1c47999c 100644
--- a/source/widgets/listview.c
+++ b/source/widgets/listview.c
@@ -639,6 +639,18 @@ static void listview_nav_page_prev_int ( listview *lv )
if ( lv == NULL ) {
return;
}
+ if ( lv->type == BARVIEW ){
+
+ if ( lv->last_offset == 0 ){
+ lv->selected = 0;
+ } else {
+ lv->selected = lv->last_offset-1;
+ }
+ lv->barview.direction = RIGHT_TO_LEFT;
+ widget_queue_redraw ( WIDGET ( lv ) );
+ return;
+ }
+
if ( lv->selected < lv->max_elements ) {
lv->selected = 0;
}
@@ -655,6 +667,14 @@ static void listview_nav_page_next_int ( listview *lv )
if ( lv->req_elements == 0 ) {
return;
}
+ if ( lv->type == BARVIEW ) {
+ unsigned int new = lv->last_offset+lv->barview.cur_visible;
+ lv->selected = MIN ( new, lv->req_elements-1);
+ lv->barview.direction = LEFT_TO_RIGHT;
+
+ widget_queue_redraw ( WIDGET ( lv ) );
+ return;
+ }
lv->selected += ( lv->max_elements );
if ( lv->selected >= lv->req_elements ) {
lv->selected = lv->req_elements - 1;