mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2025-02-10 09:41:09 +00:00
added IN_UpdateForKeydest() as a new helper who does stuff if the
key_dest changes matter to the keyboard driver, e.g. sending KP_ key decisions, or SDL unicode stuff. we run it every frame either before Sys_SendKeyEvents() or from within Key_ForceDest() for now. (merged from uhexen2.) git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@773 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
2a42d766a3
commit
9f8b2dfc0d
4 changed files with 14 additions and 8 deletions
|
@ -687,6 +687,7 @@ void _Host_Frame (float time)
|
||||||
|
|
||||||
// get new key events
|
// get new key events
|
||||||
Key_ForceDest ();
|
Key_ForceDest ();
|
||||||
|
//IN_UpdateForKeydest ();
|
||||||
Sys_SendKeyEvents ();
|
Sys_SendKeyEvents ();
|
||||||
|
|
||||||
// allow mice or other external controllers to add commands
|
// allow mice or other external controllers to add commands
|
||||||
|
@ -726,9 +727,7 @@ void _Host_Frame (float time)
|
||||||
|
|
||||||
// fetch results from server
|
// fetch results from server
|
||||||
if (cls.state == ca_connected)
|
if (cls.state == ca_connected)
|
||||||
{
|
|
||||||
CL_ReadFromServer ();
|
CL_ReadFromServer ();
|
||||||
}
|
|
||||||
|
|
||||||
// update video
|
// update video
|
||||||
if (host_speeds.value)
|
if (host_speeds.value)
|
||||||
|
|
|
@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "SDL.h"
|
#include "SDL.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static qboolean prev_gamekey;
|
static qboolean prev_gamekey, gamekey;
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
/* Mouse acceleration needs to be disabled on OS X */
|
/* Mouse acceleration needs to be disabled on OS X */
|
||||||
|
@ -300,12 +300,8 @@ void IN_ClearStates (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void IN_SendKeyEvents (void)
|
void IN_UpdateForKeydest (void)
|
||||||
{
|
{
|
||||||
SDL_Event event;
|
|
||||||
int sym, state, modstate;
|
|
||||||
qboolean gamekey;
|
|
||||||
|
|
||||||
gamekey = ((key_dest == key_game && !con_forcedup) || m_keys_bind_grab);
|
gamekey = ((key_dest == key_game && !con_forcedup) || m_keys_bind_grab);
|
||||||
if (gamekey != prev_gamekey)
|
if (gamekey != prev_gamekey)
|
||||||
{
|
{
|
||||||
|
@ -313,6 +309,12 @@ void IN_SendKeyEvents (void)
|
||||||
Key_ClearStates();
|
Key_ClearStates();
|
||||||
SDL_EnableUNICODE(!gamekey);
|
SDL_EnableUNICODE(!gamekey);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void IN_SendKeyEvents (void)
|
||||||
|
{
|
||||||
|
SDL_Event event;
|
||||||
|
int sym, state, modstate;
|
||||||
|
|
||||||
while (SDL_PollEvent(&event))
|
while (SDL_PollEvent(&event))
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,6 +39,9 @@ void IN_MouseMove(int dx, int dy);
|
||||||
void IN_SendKeyEvents (void);
|
void IN_SendKeyEvents (void);
|
||||||
// used as a callback for Sys_SendKeyEvents() by some drivers
|
// used as a callback for Sys_SendKeyEvents() by some drivers
|
||||||
|
|
||||||
|
void IN_UpdateForKeydest (void);
|
||||||
|
// do stuff if key_dest changes matter to the keyboard driver
|
||||||
|
|
||||||
void IN_Move (usercmd_t *cmd);
|
void IN_Move (usercmd_t *cmd);
|
||||||
// add additional movement on top of the keyboard move cmd
|
// add additional movement on top of the keyboard move cmd
|
||||||
|
|
||||||
|
|
|
@ -1077,5 +1077,7 @@ void Key_ForceDest (void)
|
||||||
forced = false;
|
forced = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IN_UpdateForKeydest ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue