I'm iffy as to whether this really helps, but I'm putting it in for now. 1,000th commit…
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1000 c06c8d41-db1a-0410-9941-cceddc491573
7NFVYCNQ54IN77PF334ADAF4YQT6LEABMAIZF4Y4BH5C3CYXYQGQC LAMIVDKY7LO5ONX5Z273ZCCEA5UBENOJD5VWNE4AK2EXGFED6BFQC 5ASC3STDYCNLZFEBN6UTMUCGDETHBR2OCBZCF5VIAZ5RRWLOTDYQC S7LXN4ZS57KFPKGOQNDZ6NZ7LOSQZIUHKO5DDZ2VTLJQSH2HN6MQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 2GV6OW7P54FXZ5OD2NUMX7MLXH424LYAFMOAUQ2UGSOLKLYDBJGAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC // If, when scrolling forward, we encounter a MEL_TITLE// somewhere in the newly displayed page, stop scrolling// just before it becomes visibleint target;for (target = first_entry; target < first_entry + pagesize; ++target ){const int offset = target + pagesize - 1;if (offset < (int)items.size() && items[offset]->level == MEL_TITLE)break;}first_entry = target;return (old_first != first_entry);}bool formatted_scroller::page_up(){int old_first = first_entry;// If, when scrolling backward, we encounter a MEL_TITLE// somewhere in the newly displayed page, stop scrolling// just before it becomes visiblefor ( int i = 0; i < pagesize; ++i ){if (first_entry == 0 || items[first_entry-1]->level == MEL_TITLE)break;--first_entry;}return (old_first != first_entry);}bool formatted_scroller::line_down(){if (first_entry + pagesize < (int) items.size() &&items[first_entry + pagesize]->level != MEL_TITLE ){++first_entry;return true;}return false;}bool formatted_scroller::line_up(){if (first_entry > 0 && items[first_entry-1]->level != MEL_TITLE){--first_entry;return true;}return false;}