From 4090753ab23242839b7afbae48f7aa2e3d64c5fc Mon Sep 17 00:00:00 2001 From: haranp Date: Wed, 27 Dec 2006 08:55:08 +0000 Subject: Better fix for 1622380: now it works for all menus. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@709 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/menu.cc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'crawl-ref/source/menu.cc') diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc index 71bcfec7c9..f42d56725c 100644 --- a/crawl-ref/source/menu.cc +++ b/crawl-ref/source/menu.cc @@ -200,6 +200,22 @@ bool Menu::process_key( int keyin ) nav = true; repaint = line_down(); break; + case CK_HOME: + nav = true; + repaint = first_entry != 0; + first_entry = 0; + break; + case CK_END: + { + nav = true; + const int breakpoint = (items.size() + 1) - pagesize; + if ( first_entry < breakpoint ) + { + first_entry = breakpoint; + repaint = true; + } + break; + } default: keyin = post_process(keyin); lastch = keyin; @@ -1419,8 +1435,12 @@ bool menu_browser::process_key( int keyin ) repaint = jump_to(0); break; case CK_END: - repaint = jump_to(items.size() > 10 ? items.size() - 10 : 0); + { + const int breakpoint = (items.size() + 1) - pagesize; + if ( first_entry < breakpoint ) + repaint = jump_to(breakpoint); break; + } default: // look for it as a hotkey for ( unsigned int i = 0; i < items.size(); ++i ) -- cgit v1.2.3-54-g00ecf