forked from len0rd/rockbox
Fix touchscreen scrollbar behaviour when it's on the right.
This was broken since r26922. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27107 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
7e37fa926d
commit
3f4838585f
1 changed files with 7 additions and 12 deletions
|
|
@ -347,24 +347,16 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list)
|
||||||
short x, y;
|
short x, y;
|
||||||
const int button = action_get_touchscreen_press(&x, &y);
|
const int button = action_get_touchscreen_press(&x, &y);
|
||||||
int line;
|
int line;
|
||||||
const int screen = SCREEN_MAIN;
|
const struct screen *display = &screens[SCREEN_MAIN];
|
||||||
|
const int screen = display->screen_type;
|
||||||
const int list_start_item = gui_list->start_item[screen];
|
const int list_start_item = gui_list->start_item[screen];
|
||||||
const struct viewport *list_text_vp = &list_text[screen];
|
const struct viewport *list_text_vp = &list_text[screen];
|
||||||
int list_width = list_text_vp->width;
|
|
||||||
|
|
||||||
if (global_settings.scrollbar == SCROLLBAR_RIGHT)
|
|
||||||
list_width += SCROLLBAR_WIDTH;
|
|
||||||
|
|
||||||
if (button == BUTTON_NONE)
|
if (button == BUTTON_NONE)
|
||||||
return ACTION_NONE;
|
return ACTION_NONE;
|
||||||
|
|
||||||
/* make sure it is inside the UI viewport */
|
if (global_settings.scrollbar == SCROLLBAR_RIGHT &&
|
||||||
if (list_display_title(gui_list, screen) &&
|
x > list_text_vp->x + list_text_vp->width + SCROLLBAR_WIDTH)
|
||||||
viewport_point_within_vp(&title_text[screen], x, y) &&
|
|
||||||
button == BUTTON_REL)
|
|
||||||
return ACTION_STD_CANCEL;
|
|
||||||
|
|
||||||
if (!viewport_point_within_vp(list_text_vp, x, y))
|
|
||||||
/* wider than the list's viewport, ignore it */
|
/* wider than the list's viewport, ignore it */
|
||||||
return ACTION_NONE;
|
return ACTION_NONE;
|
||||||
|
|
||||||
|
|
@ -471,6 +463,9 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list)
|
||||||
else
|
else
|
||||||
return ACTION_NONE;
|
return ACTION_NONE;
|
||||||
}
|
}
|
||||||
|
/* Everything above the items is cancel */
|
||||||
|
else if (y < list_text_vp->y && button == BUTTON_REL)
|
||||||
|
return ACTION_STD_CANCEL;
|
||||||
}
|
}
|
||||||
return ACTION_NONE;
|
return ACTION_NONE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue