summaryrefslogtreecommitdiff
path: root/lib/draw
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-04-12 18:42:30 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-04-12 18:42:30 +0300
commitad4e0425a6860803e5f31a08c349cd99e02e2847 (patch)
treeb6a250c795a2f7331b79e69268ffac2c347ede3d /lib/draw
parentfc08cb9cffce6cdb0ca3aa9f77953e86b2cf1290 (diff)
downloadbemenu-ad4e0425a6860803e5f31a08c349cd99e02e2847.tar.gz
bemenu-ad4e0425a6860803e5f31a08c349cd99e02e2847.tar.bz2
bemenu-ad4e0425a6860803e5f31a08c349cd99e02e2847.zip
Make page scrolling work like it should. (Shfit+pgup/pgdwn for old
behaviour)
Diffstat (limited to 'lib/draw')
-rw-r--r--lib/draw/curses.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/draw/curses.c b/lib/draw/curses.c
index 653a07d..b54693f 100644
--- a/lib/draw/curses.c
+++ b/lib/draw/curses.c
@@ -198,6 +198,12 @@ static void _bmDrawCursesRender(const bmMenu *menu)
curses.refresh();
}
+static unsigned int _bmDrawCursesDisplayedCount(const bmMenu *menu)
+{
+ (void)menu;
+ return (curses.stdscr ? curses.getmaxy(curses.stdscr) : 0);
+}
+
static void _bmDrawCursesEndWin(void)
{
freopen(TTY, "w", stdout);
@@ -258,6 +264,12 @@ static bmKey _bmDrawCursesGetKey(unsigned int *unicode)
case KEY_NPAGE: /* Page down */
return BM_KEY_PAGE_DOWN;
+ case 398: /* S-Page up */
+ return BM_KEY_SHIFT_PAGE_UP;
+
+ case 396: /* S-Page down */
+ return BM_KEY_SHIFT_PAGE_DOWN;
+
case 8: /* C-h */
case 127: /* Delete */
case KEY_BACKSPACE:
@@ -361,6 +373,7 @@ int _bmDrawCursesInit(struct _bmRenderApi *api)
#undef bmLoadFunction
+ api->displayedCount = _bmDrawCursesDisplayedCount;
api->getKey = _bmDrawCursesGetKey;
api->render = _bmDrawCursesRender;
api->free = _bmDrawCursesFree;