mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-11-10 06:31:56 +00:00
Backscrolling fix.
This commit is contained in:
parent
9e4cee29a2
commit
37859bbd4e
3 changed files with 18 additions and 13 deletions
|
@ -128,6 +128,10 @@ void Con_Clear_f (void)
|
||||||
{
|
{
|
||||||
Q_memset (con_main.text, ' ', CON_TEXTSIZE);
|
Q_memset (con_main.text, ' ', CON_TEXTSIZE);
|
||||||
Q_memset (con_chat.text, ' ', CON_TEXTSIZE);
|
Q_memset (con_chat.text, ' ', CON_TEXTSIZE);
|
||||||
|
con_main.numlines = 0;
|
||||||
|
con_chat.numlines = 0;
|
||||||
|
con_main.display = con_main.current;
|
||||||
|
con_chat.display = con_chat.current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -288,6 +292,8 @@ void Con_Linefeed (void)
|
||||||
if (con->display == con->current)
|
if (con->display == con->current)
|
||||||
con->display++;
|
con->display++;
|
||||||
con->current++;
|
con->current++;
|
||||||
|
if (con->numlines < con_totallines)
|
||||||
|
con->numlines++;
|
||||||
Q_memset (&con->text[(con->current%con_totallines)*con_linewidth]
|
Q_memset (&con->text[(con->current%con_totallines)*con_linewidth]
|
||||||
, ' ', con_linewidth);
|
, ' ', con_linewidth);
|
||||||
}
|
}
|
||||||
|
@ -400,6 +406,7 @@ void Con_Printf (char *fmt, ...)
|
||||||
// write it to the scrollable buffer
|
// write it to the scrollable buffer
|
||||||
Con_Print (msg);
|
Con_Print (msg);
|
||||||
|
|
||||||
|
#if 0
|
||||||
// update the screen immediately if the console is displayed
|
// update the screen immediately if the console is displayed
|
||||||
if (cls.state != ca_active)
|
if (cls.state != ca_active)
|
||||||
{
|
{
|
||||||
|
@ -412,6 +419,7 @@ void Con_Printf (char *fmt, ...)
|
||||||
inupdate = false;
|
inupdate = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -42,6 +42,7 @@ typedef struct
|
||||||
int current; // line where next message will be printed
|
int current; // line where next message will be printed
|
||||||
int x; // offset in current line for next print
|
int x; // offset in current line for next print
|
||||||
int display; // bottom of console displays this line
|
int display; // bottom of console displays this line
|
||||||
|
int numlines; // number of non-blank text lines, used for backscroling
|
||||||
} console_t;
|
} console_t;
|
||||||
|
|
||||||
extern console_t con_main;
|
extern console_t con_main;
|
||||||
|
|
|
@ -56,8 +56,6 @@ cvar_t *cl_constyle;
|
||||||
#define MAXCMDLINE 256
|
#define MAXCMDLINE 256
|
||||||
char key_lines[32][MAXCMDLINE];
|
char key_lines[32][MAXCMDLINE];
|
||||||
int key_linepos;
|
int key_linepos;
|
||||||
int shift_down=false;
|
|
||||||
int ctrl_down=false;
|
|
||||||
int key_lastpress;
|
int key_lastpress;
|
||||||
|
|
||||||
int edit_line=0;
|
int edit_line=0;
|
||||||
|
@ -365,7 +363,8 @@ no_lf:
|
||||||
case K_MWHEELUP:
|
case K_MWHEELUP:
|
||||||
case KP_PGUP:
|
case KP_PGUP:
|
||||||
case K_PGUP:
|
case K_PGUP:
|
||||||
con->display -= 2;
|
if (con->display - con->current + con->numlines > 2)
|
||||||
|
con->display -= 2;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case K_MWHEELDOWN:
|
case K_MWHEELDOWN:
|
||||||
|
@ -378,15 +377,18 @@ no_lf:
|
||||||
|
|
||||||
case KP_HOME:
|
case KP_HOME:
|
||||||
case K_HOME:
|
case K_HOME:
|
||||||
if (ctrl_down)
|
if (keydown[K_CTRL])
|
||||||
con->display = con->current - con_totallines + 10;
|
{
|
||||||
|
if (con->numlines > 10)
|
||||||
|
con->display = con->current - con->numlines + 10;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
key_linepos = 1;
|
key_linepos = 1;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case KP_END:
|
case KP_END:
|
||||||
case K_END:
|
case K_END:
|
||||||
if (ctrl_down)
|
if (keydown[K_CTRL])
|
||||||
con->display = con->current;
|
con->display = con->current;
|
||||||
else
|
else
|
||||||
key_linepos = strlen(key_lines[edit_line]);
|
key_linepos = strlen(key_lines[edit_line]);
|
||||||
|
@ -817,12 +819,6 @@ void Key_Event (int key, qboolean down)
|
||||||
Con_Printf ("%s is unbound, hit F4 to set.\n", Key_KeynumToString (key) );
|
Con_Printf ("%s is unbound, hit F4 to set.\n", Key_KeynumToString (key) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key == K_SHIFT)
|
|
||||||
shift_down = down;
|
|
||||||
|
|
||||||
if (key == K_CTRL)
|
|
||||||
ctrl_down = down;
|
|
||||||
|
|
||||||
if (key_dest == key_message && cls.state != ca_active)
|
if (key_dest == key_message && cls.state != ca_active)
|
||||||
key_dest = key_console;
|
key_dest = key_console;
|
||||||
|
|
||||||
|
@ -917,7 +913,7 @@ void Key_Event (int key, qboolean down)
|
||||||
if (!down)
|
if (!down)
|
||||||
return; // other systems only care about key down events
|
return; // other systems only care about key down events
|
||||||
|
|
||||||
if (shift_down)
|
if (keydown[K_SHIFT])
|
||||||
key = keyshift[key];
|
key = keyshift[key];
|
||||||
|
|
||||||
switch (key_dest)
|
switch (key_dest)
|
||||||
|
|
Loading…
Reference in a new issue