summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input/input_sdlcommon.cpp
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-04-25 17:22:25 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2016-04-25 17:22:25 +0200
commit9c2ef88573827db7a9b032f7ae86580f0c285bc1 (patch)
tree25579f21730982488480e9bfe3737e3fc1c5c18c /src/osd/modules/input/input_sdlcommon.cpp
parent5e831f6506ee06f8c30cb113551ee0fec53804db (diff)
Revert "Temp revert of Brad changes (nw)"
This reverts commit 5e831f6506ee06f8c30cb113551ee0fec53804db.
Diffstat (limited to 'src/osd/modules/input/input_sdlcommon.cpp')
-rw-r--r--src/osd/modules/input/input_sdlcommon.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/osd/modules/input/input_sdlcommon.cpp b/src/osd/modules/input/input_sdlcommon.cpp
index 5cc6c6f901d..82c470534b2 100644
--- a/src/osd/modules/input/input_sdlcommon.cpp
+++ b/src/osd/modules/input/input_sdlcommon.cpp
@@ -35,12 +35,11 @@
#define GET_WINDOW(ev) window_from_id((ev)->windowID)
//#define GET_WINDOW(ev) ((ev)->windowID)
-static inline sdl_window_info * window_from_id(Uint32 windowID)
+static inline std::shared_ptr<sdl_window_info> window_from_id(Uint32 windowID)
{
- sdl_window_info *w;
SDL_Window *window = SDL_GetWindowFromID(windowID);
- for (w = sdl_window_list; w != NULL; w = w->m_next)
+ for (auto w : sdl_window_list)
{
//printf("w->window_id: %d\n", w->window_id);
if (w->platform_window<SDL_Window*>() == window)
@@ -72,7 +71,7 @@ void sdl_event_manager::process_events(running_machine &machine)
void sdl_event_manager::process_window_event(running_machine &machine, SDL_Event &sdlevent)
{
- sdl_window_info *window = GET_WINDOW(&sdlevent.window);
+ std::shared_ptr<sdl_window_info> window = GET_WINDOW(&sdlevent.window);
if (window == nullptr)
return;
@@ -273,7 +272,9 @@ void sdl_osd_interface::poll_inputs(running_machine &machine)
void sdl_osd_interface::release_keys()
{
- downcast<input_module_base*>(m_keyboard_input)->devicelist()->reset_devices();
+ auto keybd = dynamic_cast<input_module_base*>(m_keyboard_input);
+ if (keybd != nullptr)
+ keybd->devicelist()->reset_devices();
}
bool sdl_osd_interface::should_hide_mouse()