diff --git a/engine/client/keys.c b/engine/client/keys.c index 4f11f057b..295e80c86 100644 --- a/engine/client/keys.c +++ b/engine/client/keys.c @@ -719,14 +719,15 @@ void Key_Console (int key) if (key == K_PGUP || key==K_MWHEELUP) { - // scr_conlines actually contains the height of the console in + // con_current->vislines actually contains the height of the console in // pixels (and not the number of lines). It's 22 pixels larger // than the text area to include borders I guess... weird shit. // - Molgrum if (keydown[K_CTRL]) - con_current->display -= ( ( (int)scr_conlines - 22 ) / 8 ); + con_current->display -= ( ( (int)con_current->vislines - 22 ) / 8 ); else con_current->display -= 2; + if (con_current->display < upperconbound) con_current->display = upperconbound; return; @@ -734,18 +735,25 @@ void Key_Console (int key) if (key == K_PGDN || key==K_MWHEELDOWN) { - // scr_conlines actually contains the height of the console in + // con_current->vislines actually contains the height of the console in // pixels (and not the number of lines). It's 22 pixels larger // than the text area to include borders I guess... weird shit. // - Molgrum if (keydown[K_CTRL]) - con_current->display += ( ( (int)scr_conlines - 22 ) / 8 ); + con_current->display += ( ( (int)con_current->vislines - 22 ) / 8 ); else con_current->display += 2; + if (con_current->display < upperconbound) con_current->display = upperconbound; - if (con_current->display > con_current->current) + + // Changed this to prevent the following scenario: PGUP, ENTER, PGDN ,(you'll + // see the ^^^^ indicator), PGDN, (the indicator disappears but the console position + // is still the same). + // - Molgrum + if (con_current->display >= ( con_current->current - 1 )) con_current->display = con_current->current; + return; }