mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-30 16:00:55 +00:00
- Changed the DWORDs in dobject.h into uint32s, since they were preventing
edit-and-continue from working for the Windows source files. - When a WM_KEYDOWN message is received with VK_PROCESSKEY, the scan key is now used to retrieve the real virtual key for the message. This fixes the previous issue that caused me to completely disable the IME. - Removed the code that disables the IME, since it also disables the ability to switch between keyboard layouts that do not use an IME. - TranslateMessage() is no longer called if GUI capture mode is off, so no dead key processing is performed until it might be useful. SVN r1758 (trunk)
This commit is contained in:
parent
63e26df7b2
commit
4d4e8e89b3
4 changed files with 35 additions and 27 deletions
|
@ -1,4 +1,15 @@
|
||||||
August 6, 2009
|
August 7, 2009
|
||||||
|
- Changed the DWORDs in dobject.h into uint32s, since they were preventing
|
||||||
|
edit-and-continue from working for the Windows source files.
|
||||||
|
- When a WM_KEYDOWN message is received with VK_PROCESSKEY, the scan key is
|
||||||
|
now used to retrieve the real virtual key for the message. This fixes the
|
||||||
|
previous issue that caused me to completely disable the IME.
|
||||||
|
- Removed the code that disables the IME, since it also disables the ability
|
||||||
|
to switch between keyboard layouts that do not use an IME.
|
||||||
|
- TranslateMessage() is no longer called if GUI capture mode is off, so no
|
||||||
|
dead key processing is performed until it might be useful.
|
||||||
|
|
||||||
|
August 6, 2009
|
||||||
- Added player MugShotMaxHealth property. Negative values use the player's
|
- Added player MugShotMaxHealth property. Negative values use the player's
|
||||||
max health as the mug shot max health, zero uses 100 as the mug shot max
|
max health as the mug shot max health, zero uses 100 as the mug shot max
|
||||||
health, and positive values used directly as the mug shot max health.
|
health, and positive values used directly as the mug shot max health.
|
||||||
|
|
|
@ -90,11 +90,11 @@ enum EMetaType
|
||||||
class FMetaData
|
class FMetaData
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
FMetaData (EMetaType type, DWORD id) : Type(type), ID(id) {}
|
FMetaData (EMetaType type, uint32 id) : Type(type), ID(id) {}
|
||||||
|
|
||||||
FMetaData *Next;
|
FMetaData *Next;
|
||||||
EMetaType Type;
|
EMetaType Type;
|
||||||
DWORD ID;
|
uint32 ID;
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
int Int;
|
int Int;
|
||||||
|
@ -113,19 +113,19 @@ public:
|
||||||
~FMetaTable();
|
~FMetaTable();
|
||||||
FMetaTable &operator = (const FMetaTable &other);
|
FMetaTable &operator = (const FMetaTable &other);
|
||||||
|
|
||||||
void SetMetaInt (DWORD id, int parm);
|
void SetMetaInt (uint32 id, int parm);
|
||||||
void SetMetaFixed (DWORD id, fixed_t parm);
|
void SetMetaFixed (uint32 id, fixed_t parm);
|
||||||
void SetMetaString (DWORD id, const char *parm); // The string is copied
|
void SetMetaString (uint32 id, const char *parm); // The string is copied
|
||||||
|
|
||||||
int GetMetaInt (DWORD id, int def=0) const;
|
int GetMetaInt (uint32 id, int def=0) const;
|
||||||
fixed_t GetMetaFixed (DWORD id, fixed_t def=0) const;
|
fixed_t GetMetaFixed (uint32 id, fixed_t def=0) const;
|
||||||
const char *GetMetaString (DWORD id) const;
|
const char *GetMetaString (uint32 id) const;
|
||||||
|
|
||||||
FMetaData *FindMeta (EMetaType type, DWORD id) const;
|
FMetaData *FindMeta (EMetaType type, uint32 id) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FMetaData *Meta;
|
FMetaData *Meta;
|
||||||
FMetaData *FindMetaDef (EMetaType type, DWORD id);
|
FMetaData *FindMetaDef (EMetaType type, uint32 id);
|
||||||
void FreeMeta ();
|
void FreeMeta ();
|
||||||
void CopyMeta (const FMetaTable *other);
|
void CopyMeta (const FMetaTable *other);
|
||||||
};
|
};
|
||||||
|
@ -249,7 +249,7 @@ namespace GC
|
||||||
extern DObject *Root;
|
extern DObject *Root;
|
||||||
|
|
||||||
// Current white value for potentially-live objects.
|
// Current white value for potentially-live objects.
|
||||||
extern DWORD CurrentWhite;
|
extern uint32 CurrentWhite;
|
||||||
|
|
||||||
// Current collector state.
|
// Current collector state.
|
||||||
extern EGCState State;
|
extern EGCState State;
|
||||||
|
@ -264,7 +264,7 @@ namespace GC
|
||||||
extern int StepMul;
|
extern int StepMul;
|
||||||
|
|
||||||
// Current white value for known-dead objects.
|
// Current white value for known-dead objects.
|
||||||
static inline DWORD OtherWhite()
|
static inline uint32 OtherWhite()
|
||||||
{
|
{
|
||||||
return CurrentWhite ^ OF_WhiteBits;
|
return CurrentWhite ^ OF_WhiteBits;
|
||||||
}
|
}
|
||||||
|
@ -446,7 +446,7 @@ private:
|
||||||
public:
|
public:
|
||||||
DObject *ObjNext; // Keep track of all allocated objects
|
DObject *ObjNext; // Keep track of all allocated objects
|
||||||
DObject *GCNext; // Next object in this collection list
|
DObject *GCNext; // Next object in this collection list
|
||||||
DWORD ObjectFlags; // Flags for this object
|
uint32 ObjectFlags; // Flags for this object
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DObject ();
|
DObject ();
|
||||||
|
|
|
@ -207,6 +207,12 @@ bool GUIWndProcHook(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESU
|
||||||
if (GetKeyState(VK_SHIFT) & 0x8000) ev.data3 |= GKM_SHIFT;
|
if (GetKeyState(VK_SHIFT) & 0x8000) ev.data3 |= GKM_SHIFT;
|
||||||
if (GetKeyState(VK_CONTROL) & 0x8000) ev.data3 |= GKM_CTRL;
|
if (GetKeyState(VK_CONTROL) & 0x8000) ev.data3 |= GKM_CTRL;
|
||||||
if (GetKeyState(VK_MENU) & 0x8000) ev.data3 |= GKM_ALT;
|
if (GetKeyState(VK_MENU) & 0x8000) ev.data3 |= GKM_ALT;
|
||||||
|
if (wParam == VK_PROCESSKEY)
|
||||||
|
{ // Use the scan code to determine the real virtual-key code.
|
||||||
|
// ImmGetVirtualKey() will supposedly do this, but it just returns
|
||||||
|
// VK_PROCESSKEY again.
|
||||||
|
wParam = MapVirtualKey((lParam >> 16) & 255, 1);
|
||||||
|
}
|
||||||
if ( (ev.data1 = MapVirtualKey(wParam, 2)) )
|
if ( (ev.data1 = MapVirtualKey(wParam, 2)) )
|
||||||
{
|
{
|
||||||
D_PostEvent(&ev);
|
D_PostEvent(&ev);
|
||||||
|
@ -702,7 +708,10 @@ void I_GetEvent ()
|
||||||
exit (mess.wParam);
|
exit (mess.wParam);
|
||||||
if (EAXEditWindow == 0 || !IsDialogMessage (EAXEditWindow, &mess))
|
if (EAXEditWindow == 0 || !IsDialogMessage (EAXEditWindow, &mess))
|
||||||
{
|
{
|
||||||
TranslateMessage (&mess);
|
if (GUICapture)
|
||||||
|
{
|
||||||
|
TranslateMessage (&mess);
|
||||||
|
}
|
||||||
DispatchMessage (&mess);
|
DispatchMessage (&mess);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -917,18 +917,6 @@ void DoMain (HINSTANCE hInstance)
|
||||||
width = 512;
|
width = 512;
|
||||||
height = 384;
|
height = 384;
|
||||||
|
|
||||||
// Disable the input method editor (not present in Win95/NT4)
|
|
||||||
HMODULE imm32 = LoadLibrary("imm32.dll");
|
|
||||||
if (imm32 != NULL)
|
|
||||||
{
|
|
||||||
BOOL (WINAPI *DisableIME)(DWORD) = (BOOL(WINAPI *)(DWORD))GetProcAddress(imm32, "ImmDisableIME");
|
|
||||||
if (DisableIME != NULL)
|
|
||||||
{
|
|
||||||
DisableIME(0);
|
|
||||||
}
|
|
||||||
FreeLibrary(imm32);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Many Windows structures that specify their size do so with the first
|
// Many Windows structures that specify their size do so with the first
|
||||||
// element. DEVMODE is not one of those structures.
|
// element. DEVMODE is not one of those structures.
|
||||||
memset (&displaysettings, 0, sizeof(displaysettings));
|
memset (&displaysettings, 0, sizeof(displaysettings));
|
||||||
|
|
Loading…
Reference in a new issue