| 330 | } |
| 331 | |
| 332 | SDL2DisplayWindow* SDL2DisplayWindow::FindEventWindow(const SDL_Event& event) |
| 333 | { |
| 334 | int windowID; |
| 335 | switch (event.type) |
| 336 | { |
| 337 | case SDL_WINDOWEVENT: windowID = event.window.windowID; break; |
| 338 | case SDL_TEXTINPUT: windowID = event.text.windowID; break; |
| 339 | case SDL_KEYUP: windowID = event.key.windowID; break; |
| 340 | case SDL_KEYDOWN: windowID = event.key.windowID; break; |
| 341 | case SDL_MOUSEBUTTONUP: windowID = event.button.windowID; break; |
| 342 | case SDL_MOUSEBUTTONDOWN: windowID = event.button.windowID; break; |
| 343 | case SDL_MOUSEWHEEL: windowID = event.wheel.windowID; break; |
| 344 | case SDL_MOUSEMOTION: windowID = event.motion.windowID; break; |
| 345 | default: |
| 346 | if (event.type == PaintEventNumber) windowID = event.user.windowID; |
| 347 | else return nullptr; |
| 348 | } |
| 349 | |
| 350 | auto it = WindowList.find(windowID); |
| 351 | return it != WindowList.end() ? it->second : nullptr; |
| 352 | } |
| 353 | |
| 354 | void SDL2DisplayWindow::DispatchEvent(const SDL_Event& event) |
| 355 | { |