mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 23:01:50 +00:00
- Fixed: When the game starts with the net pane open, the abort button
receives the input focus. When the pane is closed, the focus doesn't return to any window, so even though the window is still active, it no longer has the focus and does not receive input events. - Fixed: The network synch timer was still left running after the game started. (Windows only) - Fixed: When a player leaves the game at the exact moment they are being damaged, the game could crash because their actor still had a valid player pointer, but the player's mo pointer had been NULLed. SVN r588 (trunk)
This commit is contained in:
parent
282e9f5f01
commit
a849564d62
5 changed files with 29 additions and 1 deletions
|
@ -1,4 +1,13 @@
|
|||
December 8, 2007
|
||||
- Fixed: When the game starts with the net pane open, the abort button
|
||||
receives the input focus. When the pane is closed, the focus doesn't
|
||||
return to any window, so even though the window is still active, it no
|
||||
longer has the focus and does not receive input events.
|
||||
- Fixed: The network synch timer was still left running after the game
|
||||
started. (Windows only)
|
||||
- Fixed: When a player leaves the game at the exact moment they are being
|
||||
damaged, the game could crash because their actor still had a valid player
|
||||
pointer, but the player's mo pointer had been NULLed.
|
||||
- Fixed: MAPINFO is parsed before the text colors are read, so the TextColor
|
||||
option for skills wouldn't work.
|
||||
- Changed the PowerTimeFreezer "blink" effect back to checking against
|
||||
|
|
|
@ -630,6 +630,7 @@ void PlayerIsGone (int netnode, int netconsole)
|
|||
if (players[netconsole].mo != NULL)
|
||||
{
|
||||
P_DisconnectEffect (players[netconsole].mo);
|
||||
players[netconsole].mo->player = NULL;
|
||||
players[netconsole].mo->Destroy ();
|
||||
players[netconsole].mo = NULL;
|
||||
players[netconsole].camera = NULL;
|
||||
|
|
|
@ -70,6 +70,22 @@ void I_InitGraphics ()
|
|||
{
|
||||
UCVarValue val;
|
||||
|
||||
// If the focus window is destroyed, it doesn't go back to the active window.
|
||||
// (e.g. because the net pane was up, and a button on it had focus)
|
||||
if (GetFocus() == NULL && GetActiveWindow() == Window)
|
||||
{
|
||||
// Make sure it's in the foreground and focused. (It probably is
|
||||
// already foregrounded but may not be focused.)
|
||||
SetForegroundWindow(Window);
|
||||
SetFocus(Window);
|
||||
// Note that when I start a 2-player game on the same machine, the
|
||||
// window for the game that isn't focused, active, or foregrounded
|
||||
// still receives a WM_ACTIVATEAPP message telling it that it's the
|
||||
// active window. The window that is really the active window does
|
||||
// not receive a WM_ACTIVATEAPP message, so both games think they
|
||||
// are the active app. Huh?
|
||||
}
|
||||
|
||||
val.Bool = !!Args.CheckParm ("-devparm");
|
||||
ticker.SetGenericRepDefault (val, CVAR_Bool);
|
||||
Video = new Win32Video (0);
|
||||
|
|
|
@ -420,7 +420,8 @@ void I_CheckNativeMouse (bool preferNative)
|
|||
bool wantNative = !HaveFocus ||
|
||||
((!screen || !screen->IsFullscreen()) && (GUICapture || paused || preferNative || !use_mouse || demoplayback));
|
||||
|
||||
// Printf ("%d -> %d\n", NativeMouse, wantNative);
|
||||
//Printf ("%d %d %d %d\n", HaveFocus, GetFocus() == Window, AppActive, GetForegroundWindow() == Window);
|
||||
|
||||
if (wantNative != NativeMouse)
|
||||
{
|
||||
NativeMouse = wantNative;
|
||||
|
|
|
@ -383,6 +383,7 @@ FBasicStartupScreen::~FBasicStartupScreen()
|
|||
ProgressBar = NULL;
|
||||
LayoutMainWindow (Window, NULL);
|
||||
}
|
||||
KillTimer(Window, 1337);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
Loading…
Reference in a new issue