summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/ControllerConfigDiag.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinWX/ControllerConfigDiag.cpp')
-rw-r--r--Source/Core/DolphinWX/ControllerConfigDiag.cpp53
1 files changed, 9 insertions, 44 deletions
diff --git a/Source/Core/DolphinWX/ControllerConfigDiag.cpp b/Source/Core/DolphinWX/ControllerConfigDiag.cpp
index 909f70b1b1..6f3ae906f5 100644
--- a/Source/Core/DolphinWX/ControllerConfigDiag.cpp
+++ b/Source/Core/DolphinWX/ControllerConfigDiag.cpp
@@ -23,6 +23,7 @@
#include "Common/SysConf.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
+#include "Core/HotkeyManager.h"
#include "Core/Movie.h"
#include "Core/NetPlayProto.h"
#include "Core/HW/GCKeyboard.h"
@@ -207,12 +208,13 @@ wxStaticBoxSizer* ControllerConfigDiag::CreateWiimoteConfigSizer()
wiimote_configure_bt[i]->Bind(wxEVT_BUTTON, &ControllerConfigDiag::ConfigEmulatedWiimote, this);
// Disable controller type selection for certain circumstances.
- if (NetPlay::IsNetPlayRunning() || Movie::IsMovieActive())
+ bool wii_game_started = SConfig::GetInstance().m_LocalCoreStartupParameter.bWii || Core::GetState() == Core::CORE_UNINITIALIZED;
+ if (NetPlay::IsNetPlayRunning() || Movie::IsMovieActive() || !wii_game_started)
wiimote_source_ch[i]->Disable();
m_orig_wiimote_sources[i] = g_wiimote_sources[i];
wiimote_source_ch[i]->Select(m_orig_wiimote_sources[i]);
- if (m_orig_wiimote_sources[i] != WIIMOTE_SRC_EMU && m_orig_wiimote_sources[i] != WIIMOTE_SRC_HYBRID)
+ if (!wii_game_started || (m_orig_wiimote_sources[i] != WIIMOTE_SRC_EMU && m_orig_wiimote_sources[i] != WIIMOTE_SRC_HYBRID))
wiimote_configure_bt[i]->Disable();
}
@@ -390,28 +392,13 @@ wxStaticBoxSizer* ControllerConfigDiag::CreateGeneralWiimoteSettingsSizer()
void ControllerConfigDiag::ConfigEmulatedWiimote(wxCommandEvent& ev)
{
InputConfig* const wiimote_plugin = Wiimote::GetConfig();
- bool was_init = false;
- if (g_controller_interface.IsInit()) // check if game is running
- {
- was_init = true;
- }
- else
- {
-#if defined(HAVE_X11) && HAVE_X11
- Window win = X11Utils::XWindowFromHandle(GetHandle());
- Wiimote::Initialize(reinterpret_cast<void*>(win));
-#else
- Wiimote::Initialize(reinterpret_cast<void*>(GetHandle()));
-#endif
- }
+
+ HotkeyManagerEmu::Enable(false);
InputConfigDialog m_ConfigFrame(this, *wiimote_plugin, _("Dolphin Emulated Wiimote Configuration"), m_wiimote_index_from_conf_bt_id[ev.GetId()]);
m_ConfigFrame.ShowModal();
- if (!was_init) // if game isn't running
- {
- Wiimote::Shutdown();
- }
+ HotkeyManagerEmu::Enable(true);
}
void ControllerConfigDiag::RefreshRealWiimotes(wxCommandEvent&)
@@ -535,24 +522,7 @@ void ControllerConfigDiag::OnGameCubeConfigButton(wxCommandEvent& event)
InputConfig* const key_plugin = Keyboard::GetConfig();
const int port_num = m_gc_port_config_ids[event.GetId()];
- bool was_init = false;
-
- // check if game is running
- if (g_controller_interface.IsInit())
- {
- was_init = true;
- }
- else
- {
-#if defined(HAVE_X11) && HAVE_X11
- Window win = X11Utils::XWindowFromHandle(GetHandle());
- Pad::Initialize(reinterpret_cast<void*>(win));
- Keyboard::Initialize(reinterpret_cast<void*>(win));
-#else
- Pad::Initialize(reinterpret_cast<void*>(GetHandle()));
- Keyboard::Initialize(reinterpret_cast<void*>(GetHandle()));
-#endif
- }
+ HotkeyManagerEmu::Enable(false);
if (SConfig::GetInstance().m_SIDevice[port_num] == SIDEVICE_GC_KEYBOARD)
{
@@ -565,10 +535,5 @@ void ControllerConfigDiag::OnGameCubeConfigButton(wxCommandEvent& event)
m_ConfigFrame.ShowModal();
}
- // if game isn't running
- if (!was_init)
- {
- Keyboard::Shutdown();
- Pad::Shutdown();
- }
+ HotkeyManagerEmu::Enable(true);
}