mirror of
https://github.com/narzoul/DDrawCompat
synced 2024-12-30 08:55:36 +01:00
Added AltTabFix=noactivateapp setting
Fixes alt-tabbing in Tonic Trouble (issue #286).
This commit is contained in:
parent
8e84130378
commit
5b35b3b261
@ -9,16 +9,23 @@ namespace Config
|
|||||||
class AltTabFix : public EnumSetting
|
class AltTabFix : public EnumSetting
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum Values { OFF, KEEPVIDMEM };
|
enum Values { OFF, KEEPVIDMEM, NOACTIVATEAPP };
|
||||||
|
|
||||||
AltTabFix()
|
AltTabFix()
|
||||||
: EnumSetting("AltTabFix", "off", { "off", "keepvidmem" })
|
: EnumSetting("AltTabFix", "off", { "off", "keepvidmem", "noactivateapp" })
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ParamInfo getParamInfo() const override
|
virtual ParamInfo getParamInfo() const override
|
||||||
{
|
{
|
||||||
return KEEPVIDMEM == m_value ? ParamInfo{ "KeepPrimary", 0, 1, 1 } : ParamInfo{};
|
switch (m_value)
|
||||||
|
{
|
||||||
|
case KEEPVIDMEM:
|
||||||
|
return { "KeepPrimary", 0, 1, 1 };
|
||||||
|
case NOACTIVATEAPP:
|
||||||
|
return { "PassToApp", 0, 1, 1 };
|
||||||
|
}
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -183,12 +183,18 @@ namespace
|
|||||||
if (origWndProc)
|
if (origWndProc)
|
||||||
{
|
{
|
||||||
auto tagSurface = DDraw::TagSurface::findFullscreenWindow();
|
auto tagSurface = DDraw::TagSurface::findFullscreenWindow();
|
||||||
if (tagSurface && tagSurface->getExclusiveOwnerThreadId() != GetCurrentThreadId())
|
if (tagSurface && tagSurface->getExclusiveOwnerThreadId() != GetCurrentThreadId() ||
|
||||||
|
Config::Settings::AltTabFix::NOACTIVATEAPP == Config::altTabFix.get())
|
||||||
{
|
{
|
||||||
if (!wParam)
|
if (!wParam)
|
||||||
{
|
{
|
||||||
ShowWindow(hwnd, SW_SHOWMINNOACTIVE);
|
ShowWindow(hwnd, SW_SHOWMINNOACTIVE);
|
||||||
}
|
}
|
||||||
|
if (Config::Settings::AltTabFix::NOACTIVATEAPP == Config::altTabFix.get() &&
|
||||||
|
0 == Config::altTabFix.getParam())
|
||||||
|
{
|
||||||
|
return LOG_RESULT(0);
|
||||||
|
}
|
||||||
return LOG_RESULT(CallWindowProcA(origWndProc, hwnd, WM_ACTIVATEAPP, wParam, lParam));
|
return LOG_RESULT(CallWindowProcA(origWndProc, hwnd, WM_ACTIVATEAPP, wParam, lParam));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user