From 18d0a6460b341e0a322d64d9ea5124a3bfd780a8 Mon Sep 17 00:00:00 2001 From: Dennis Andersen Date: Tue, 25 Feb 2014 01:05:37 +0100 Subject: [PATCH] Input - Added method for releasing default input object --- Code/Misc/Input/Include/InputManager.h | 5 +++++ Code/Misc/Input/Source/InputManager.cpp | 6 ++++++ Code/Misc/Input/Source/Keyboard.cpp | 4 ++++ Code/Misc/Input/Source/Win32/Win32Input.cpp | 6 ++---- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Code/Misc/Input/Include/InputManager.h b/Code/Misc/Input/Include/InputManager.h index 1feff9cf..b34d81e9 100644 --- a/Code/Misc/Input/Include/InputManager.h +++ b/Code/Misc/Input/Include/InputManager.h @@ -25,6 +25,11 @@ namespace Input */ static InputManager* CreateInputManager (); + /** + * @return Destroy default input manager. + */ + static void DestroyInputManager (); + /** * @return Destroys a input manager. */ diff --git a/Code/Misc/Input/Source/InputManager.cpp b/Code/Misc/Input/Source/InputManager.cpp index 48bb828f..b226d1da 100644 --- a/Code/Misc/Input/Source/InputManager.cpp +++ b/Code/Misc/Input/Source/InputManager.cpp @@ -57,6 +57,11 @@ InputManager* InputManager::CreateInputManager() { return CreateManager(); } +void InputManager::DestroyInputManager() +{ + delete defaultInstance; + defaultInstance = 0; +} void InputManager::DestroyInputManager(InputManager* inputSystem) { if(!inputSystem) return; @@ -77,3 +82,4 @@ InputManager::~InputManager() + diff --git a/Code/Misc/Input/Source/Keyboard.cpp b/Code/Misc/Input/Source/Keyboard.cpp index a35f75a5..fc75f4d8 100644 --- a/Code/Misc/Input/Source/Keyboard.cpp +++ b/Code/Misc/Input/Source/Keyboard.cpp @@ -226,6 +226,10 @@ void Keyboard::BindTextTarget( ::std::wstring *field ) { this->writePos = field->size(); } + else + { + this->writePos = 0; + } } void Keyboard::ReleaseTextTarget( ) { diff --git a/Code/Misc/Input/Source/Win32/Win32Input.cpp b/Code/Misc/Input/Source/Win32/Win32Input.cpp index 30ebf7ab..e1b0e040 100644 --- a/Code/Misc/Input/Source/Win32/Win32Input.cpp +++ b/Code/Misc/Input/Source/Win32/Win32Input.cpp @@ -150,7 +150,7 @@ Win32Input::Win32Input() { /*wrong*/ } } Win32Input::~Win32Input() -{} +{ Destroy(); } InputObject* Win32Input::CreateDevice(const SAIType inputType, Typedefs::WindowHandle targetApplication) { if(!this->instance->targetHwin) @@ -225,9 +225,7 @@ void Win32Input::ToggleInputSystem(bool enable) void Win32Input::Destroy () { ShowCursor(true); - RECT r; - GetWindowRect(GetDesktopWindow(), &r); - ClipCursor(&r); + ClipCursor(0); for (unsigned int i = 0; i < this->keyboard.size(); i++) {