DolphinQt: Give hotkeys their own "background input" setting.
This commit is contained in:
parent
a9dc4ac3f0
commit
903db48280
|
@ -12,4 +12,6 @@ const ConfigInfo<bool> MAIN_USE_DISCORD_PRESENCE{{System::Main, "General", "UseD
|
||||||
true};
|
true};
|
||||||
const ConfigInfo<bool> MAIN_USE_GAME_COVERS{{System::Main, "General", "UseGameCovers"}, false};
|
const ConfigInfo<bool> MAIN_USE_GAME_COVERS{{System::Main, "General", "UseGameCovers"}, false};
|
||||||
|
|
||||||
|
const ConfigInfo<bool> MAIN_FOCUSED_HOTKEYS{{System::Main, "General", "HotkeysRequireFocus"}, true};
|
||||||
|
|
||||||
} // namespace Config
|
} // namespace Config
|
||||||
|
|
|
@ -18,5 +18,6 @@ namespace Config
|
||||||
|
|
||||||
extern const ConfigInfo<bool> MAIN_USE_DISCORD_PRESENCE;
|
extern const ConfigInfo<bool> MAIN_USE_DISCORD_PRESENCE;
|
||||||
extern const ConfigInfo<bool> MAIN_USE_GAME_COVERS;
|
extern const ConfigInfo<bool> MAIN_USE_GAME_COVERS;
|
||||||
|
extern const ConfigInfo<bool> MAIN_FOCUSED_HOTKEYS;
|
||||||
|
|
||||||
} // namespace Config
|
} // namespace Config
|
||||||
|
|
|
@ -1050,11 +1050,10 @@ void DoFrameStep()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateInputGate()
|
void UpdateInputGate(bool require_focus)
|
||||||
{
|
{
|
||||||
ControlReference::SetInputGate(
|
ControlReference::SetInputGate((!require_focus || Host_RendererHasFocus()) &&
|
||||||
(SConfig::GetInstance().m_BackgroundInput || Host_RendererHasFocus()) &&
|
!Host_UIBlocksControllerState());
|
||||||
!Host_UIBlocksControllerState());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -112,6 +112,6 @@ void HostDispatchJobs();
|
||||||
|
|
||||||
void DoFrameStep();
|
void DoFrameStep();
|
||||||
|
|
||||||
void UpdateInputGate();
|
void UpdateInputGate(bool require_focus);
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -826,7 +826,7 @@ void Update(u64 ticks)
|
||||||
|
|
||||||
if (s_half_line_of_next_si_poll == s_half_line_count)
|
if (s_half_line_of_next_si_poll == s_half_line_count)
|
||||||
{
|
{
|
||||||
Core::UpdateInputGate();
|
Core::UpdateInputGate(!SConfig::GetInstance().m_BackgroundInput);
|
||||||
SerialInterface::UpdateDevices();
|
SerialInterface::UpdateDevices();
|
||||||
s_half_line_of_next_si_poll += 2 * SerialInterface::GetPollXLines();
|
s_half_line_of_next_si_poll += 2 * SerialInterface::GetPollXLines();
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,10 @@
|
||||||
#include "Common/Thread.h"
|
#include "Common/Thread.h"
|
||||||
|
|
||||||
#include "Core/Config/GraphicsSettings.h"
|
#include "Core/Config/GraphicsSettings.h"
|
||||||
|
#include "Core/Config/UISettings.h"
|
||||||
#include "Core/ConfigManager.h"
|
#include "Core/ConfigManager.h"
|
||||||
#include "Core/Core.h"
|
#include "Core/Core.h"
|
||||||
|
#include "Core/Host.h"
|
||||||
#include "Core/HotkeyManager.h"
|
#include "Core/HotkeyManager.h"
|
||||||
#include "Core/IOS/IOS.h"
|
#include "Core/IOS/IOS.h"
|
||||||
#include "Core/IOS/USB/Bluetooth/BTBase.h"
|
#include "Core/IOS/USB/Bluetooth/BTBase.h"
|
||||||
|
@ -143,8 +145,8 @@ void HotkeyScheduler::Run()
|
||||||
|
|
||||||
if (Core::GetState() != Core::State::Stopping)
|
if (Core::GetState() != Core::State::Stopping)
|
||||||
{
|
{
|
||||||
// Obey window focus before checking hotkeys.
|
// Obey window focus (config permitting) before checking hotkeys.
|
||||||
Core::UpdateInputGate();
|
Core::UpdateInputGate(Config::Get(Config::MAIN_FOCUSED_HOTKEYS));
|
||||||
|
|
||||||
HotkeyManagerEmu::GetStatus();
|
HotkeyManagerEmu::GetStatus();
|
||||||
|
|
||||||
|
|
|
@ -151,11 +151,13 @@ void InterfacePane::CreateUI()
|
||||||
m_checkbox_use_covers =
|
m_checkbox_use_covers =
|
||||||
new QCheckBox(tr("Download Game Covers from GameTDB.com for Use in Grid Mode"));
|
new QCheckBox(tr("Download Game Covers from GameTDB.com for Use in Grid Mode"));
|
||||||
m_checkbox_show_debugging_ui = new QCheckBox(tr("Show Debugging UI"));
|
m_checkbox_show_debugging_ui = new QCheckBox(tr("Show Debugging UI"));
|
||||||
|
m_checkbox_focused_hotkeys = new QCheckBox(tr("Hotkeys Require Window Focus"));
|
||||||
|
|
||||||
groupbox_layout->addWidget(m_checkbox_use_builtin_title_database);
|
groupbox_layout->addWidget(m_checkbox_use_builtin_title_database);
|
||||||
groupbox_layout->addWidget(m_checkbox_use_userstyle);
|
groupbox_layout->addWidget(m_checkbox_use_userstyle);
|
||||||
groupbox_layout->addWidget(m_checkbox_use_covers);
|
groupbox_layout->addWidget(m_checkbox_use_covers);
|
||||||
groupbox_layout->addWidget(m_checkbox_show_debugging_ui);
|
groupbox_layout->addWidget(m_checkbox_show_debugging_ui);
|
||||||
|
groupbox_layout->addWidget(m_checkbox_focused_hotkeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InterfacePane::CreateInGame()
|
void InterfacePane::CreateInGame()
|
||||||
|
@ -188,6 +190,7 @@ void InterfacePane::ConnectLayout()
|
||||||
&InterfacePane::OnSaveConfig);
|
&InterfacePane::OnSaveConfig);
|
||||||
connect(m_checkbox_use_covers, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig);
|
connect(m_checkbox_use_covers, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig);
|
||||||
connect(m_checkbox_show_debugging_ui, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig);
|
connect(m_checkbox_show_debugging_ui, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig);
|
||||||
|
connect(m_checkbox_focused_hotkeys, &QCheckBox::toggled, this, &InterfacePane::OnSaveConfig);
|
||||||
connect(m_combobox_theme,
|
connect(m_combobox_theme,
|
||||||
static_cast<void (QComboBox::*)(const QString&)>(&QComboBox::currentIndexChanged),
|
static_cast<void (QComboBox::*)(const QString&)>(&QComboBox::currentIndexChanged),
|
||||||
&Settings::Instance(), &Settings::SetThemeName);
|
&Settings::Instance(), &Settings::SetThemeName);
|
||||||
|
@ -239,6 +242,7 @@ void InterfacePane::LoadConfig()
|
||||||
m_checkbox_show_active_title->setChecked(startup_params.m_show_active_title);
|
m_checkbox_show_active_title->setChecked(startup_params.m_show_active_title);
|
||||||
m_checkbox_pause_on_focus_lost->setChecked(startup_params.m_PauseOnFocusLost);
|
m_checkbox_pause_on_focus_lost->setChecked(startup_params.m_PauseOnFocusLost);
|
||||||
m_checkbox_use_covers->setChecked(Config::Get(Config::MAIN_USE_GAME_COVERS));
|
m_checkbox_use_covers->setChecked(Config::Get(Config::MAIN_USE_GAME_COVERS));
|
||||||
|
m_checkbox_focused_hotkeys->setChecked(Config::Get(Config::MAIN_FOCUSED_HOTKEYS));
|
||||||
m_checkbox_hide_mouse->setChecked(Settings::Instance().GetHideCursor());
|
m_checkbox_hide_mouse->setChecked(Settings::Instance().GetHideCursor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,5 +286,7 @@ void InterfacePane::OnSaveConfig()
|
||||||
Settings::Instance().RefreshMetadata();
|
Settings::Instance().RefreshMetadata();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Config::SetBase(Config::MAIN_FOCUSED_HOTKEYS, m_checkbox_focused_hotkeys->isChecked());
|
||||||
|
|
||||||
settings.SaveSettings();
|
settings.SaveSettings();
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ private:
|
||||||
QCheckBox* m_checkbox_use_builtin_title_database;
|
QCheckBox* m_checkbox_use_builtin_title_database;
|
||||||
QCheckBox* m_checkbox_use_userstyle;
|
QCheckBox* m_checkbox_use_userstyle;
|
||||||
QCheckBox* m_checkbox_show_debugging_ui;
|
QCheckBox* m_checkbox_show_debugging_ui;
|
||||||
|
QCheckBox* m_checkbox_focused_hotkeys;
|
||||||
QCheckBox* m_checkbox_use_covers;
|
QCheckBox* m_checkbox_use_covers;
|
||||||
|
|
||||||
QCheckBox* m_checkbox_confirm_on_stop;
|
QCheckBox* m_checkbox_confirm_on_stop;
|
||||||
|
|
Loading…
Reference in New Issue