diff options
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 |
commit | 9c2ef88573827db7a9b032f7ae86580f0c285bc1 (patch) | |
tree | 25579f21730982488480e9bfe3737e3fc1c5c18c /src/osd/modules/input/input_sdlcommon.cpp | |
parent | 5e831f6506ee06f8c30cb113551ee0fec53804db (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.cpp | 11 |
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() |