Merge pull request #2230 from skidau/Mouse-In-Separate-Window

Updated the input plugins reference of hwnd on game start.
This commit is contained in:
skidau 2015-03-21 12:46:37 +11:00
commit 63c4bd665e
6 changed files with 21 additions and 8 deletions

View File

@ -430,6 +430,7 @@ void EmuThread()
else
{
// Update references in case controllers were refreshed
g_controller_interface.Initialize(s_window_handle);
Pad::LoadConfig();
Keyboard::LoadConfig();
}
@ -444,9 +445,10 @@ void EmuThread()
// Activate Wiimotes which don't have source set to "None"
for (unsigned int i = 0; i != MAX_BBMOTES; ++i)
{
if (g_wiimote_sources[i])
GetUsbPointer()->AccessWiiMote(i | 0x100)->Activate(true);
}
}
AudioCommon::InitSoundStream();
@ -557,6 +559,7 @@ void EmuThread()
if (init_controllers)
{
if (core_parameter.bWii)
Wiimote::Shutdown();
Keyboard::Shutdown();
Pad::Shutdown();

View File

@ -117,10 +117,11 @@ const int num_hotkeys = (sizeof(hotkey_labels) / sizeof(hotkey_labels[0]));
namespace HotkeyManagerEmu
{
static u32 hotkeyDown[3];
static HotkeyStatus hotkey;
u32 hotkeyDown[3];
HotkeyStatus hotkey;
bool enabled;
static InputConfig s_config("Hotkeys", _trans("Hotkeys"), "Hotkeys");
InputConfig s_config("Hotkeys", _trans("Hotkeys"), "Hotkeys");
InputConfig* GetConfig()
{

View File

@ -39,6 +39,4 @@ namespace HotkeyManagerEmu
bool IsEnabled();
void Enable(bool enable_toggle);
bool IsPressed(int Id, bool held);
static bool enabled;
}

View File

@ -1060,6 +1060,9 @@ GamepadPage::GamepadPage(wxWindow* parent, InputConfig& config, const unsigned i
mapping->Add(dio, 1, wxEXPAND|wxLEFT|wxTOP|wxBOTTOM, 5);
mapping->Add(control_group_sizer, 0, wxLEFT|wxEXPAND, 5);
wxCommandEvent event;
RefreshDevices(event);
UpdateGUI();
SetSizerAndFit(mapping); // needed

View File

@ -44,7 +44,7 @@ ControllerInterface g_controller_interface;
void ControllerInterface::Initialize(void* const hwnd)
{
if (m_is_init)
return;
DeInit();
m_hwnd = hwnd;
@ -102,6 +102,11 @@ void ControllerInterface::Shutdown()
delete d;
}
DeInit();
}
void ControllerInterface::DeInit()
{
m_devices.clear();
#ifdef CIFACE_USE_XINPUT

View File

@ -117,6 +117,9 @@ public:
void Initialize(void* const hwnd);
void Reinitialize();
void Shutdown();
void DeInit();
bool IsInit() const { return m_is_init; }
void UpdateReference(ControlReference* control, const ciface::Core::DeviceQualifier& default_device) const;