1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Modified page scrolling behaviour

This commit is contained in:
Klaus Schmidinger 2005-06-17 15:47:27 +02:00
parent 80a7ef5a55
commit f1ccf37128
4 changed files with 13 additions and 19 deletions

View File

@ -1297,6 +1297,7 @@ Laurence Abbott <laz@club-burniston.co.uk>
Patrick Gleichmann <patrick@feedface.com> Patrick Gleichmann <patrick@feedface.com>
for fixing the default quality value when grabbing a JPEG image for fixing the default quality value when grabbing a JPEG image
for suggestiong a modified page scrolling behaviour
Achim Tuffentsammer <a.tuffentsammer@web.de> Achim Tuffentsammer <a.tuffentsammer@web.de>
for reporting a crash in case a plugin needs to issue an error message before the for reporting a crash in case a plugin needs to issue an error message before the

View File

@ -3617,3 +3617,4 @@ Video Disk Recorder Revision History
- Fixed handling 'page down', which was broken in version 1.3.26 (thanks to Udo - Fixed handling 'page down', which was broken in version 1.3.26 (thanks to Udo
Richter). Richter).
- Modified page scrolling behaviour (based on a suggestion by Patrick Gleichmann).

10
MANUAL
View File

@ -495,11 +495,11 @@ Version 1.2
Scroll pages = yes no = when pressing the "Down" ("Up") key while the cursor Scroll pages = yes no = when pressing the "Down" ("Up") key while the cursor
is on the last (first) line of a list page, the is on the last (first) line of a list page, the
list is advanced by a full page and the cursor will list is scrolled down (up) a single line and the cursor will
be at the top (bottom) of that page remain at the bottom (top) of that page
yes = dto., but the cursor remains at the bottom (top) of yes = the list is scrolled down (up) a full page and the cursor
the page (this mode allows for faster scrolling will be at the top (bottom) of that page (this mode allows
through long lists). for faster scrolling through long lists).
Sort timers = yes Turns sorting the timers in the "Timers" menu on/off. Sort timers = yes Turns sorting the timers in the "Timers" menu on/off.
Timers are sorted by ascending start times, with the Timers are sorted by ascending start times, with the

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: osdbase.c 1.18 2005/06/17 14:22:34 kls Exp $ * $Id: osdbase.c 1.19 2005/06/17 15:35:27 kls Exp $
*/ */
#include "osdbase.h" #include "osdbase.h"
@ -271,9 +271,7 @@ void cOsdMenu::CursorUp(void)
DisplayCurrent(false); DisplayCurrent(false);
current = tmpCurrent; current = tmpCurrent;
if (current < first) { if (current < first) {
first = first > displayMenuItems - 1 ? first - (displayMenuItems - 1) : 0; first = Setup.MenuScrollPage ? max(0, current - displayMenuItems + 1) : current;
if (Setup.MenuScrollPage)
current = !SelectableItem(first) ? first + 1 : first;
Display(); Display();
} }
else else
@ -284,9 +282,8 @@ void cOsdMenu::CursorUp(void)
void cOsdMenu::CursorDown(void) void cOsdMenu::CursorDown(void)
{ {
int last = Count() - 1; int last = Count() - 1;
int lastOnScreen = first + displayMenuItems - 1;
if (current < last) { if (current < last) {
int lastOnScreen = first + displayMenuItems - 1;
int tmpCurrent = current; int tmpCurrent = current;
while (++tmpCurrent <= last && !SelectableItem(tmpCurrent)) while (++tmpCurrent <= last && !SelectableItem(tmpCurrent))
; ;
@ -296,14 +293,9 @@ void cOsdMenu::CursorDown(void)
DisplayCurrent(false); DisplayCurrent(false);
current = tmpCurrent; current = tmpCurrent;
if (current > lastOnScreen) { if (current > lastOnScreen) {
first += displayMenuItems - 1; first = Setup.MenuScrollPage ? current : max(0, current - displayMenuItems + 1);
lastOnScreen = first + displayMenuItems - 1; if (first + displayMenuItems > last)
if (lastOnScreen > last) { first = max(0, last - displayMenuItems + 1);
first = last - (displayMenuItems - 1);
lastOnScreen = last;
}
if (Setup.MenuScrollPage)
current = !SelectableItem(lastOnScreen) ? lastOnScreen - 1 : lastOnScreen;
Display(); Display();
} }
else else