aboutsummaryrefslogtreecommitdiff
path: root/backends/events/sdl/sdl-events.cpp
AgeCommit message (Collapse)Author
2019-11-17BACKENDS: Remove the Windows CE portCameron Cawley
2019-10-16SDL: Fix Missing Default Switch Cases in Events ClassD G Turner
These are flagged by GCC if -Wswitch-default is enabled.
2019-09-21BACKENDS: Add EVENT_CLIPBOARD_UPDATE eventCameron Cawley
2019-07-08SDL: Support joystick hat inputCameron Cawley
2019-07-08SDL: Initial implementation of joystick eventsCameron Cawley
2019-06-27SDL: Fix gamepad mouse cursor wrapping on hi-res screensBastien Bouclet
The cursor position was overflowing a signed 16-bits integer once multiplied with MULTIPLIER when using a resolution such as 2560x1440. It would be nice changing this code to make more sense, sadly it is thightly coupled with platform specific subclasses. Fixes #10996.
2019-04-30RISCOS: Add Drag and Drop supportCameron Cawley
2019-04-30GUI: Support adding games via Drag and DropCameron Cawley
2019-04-11AmigaOS4: Exclude platform from a SDL1/2 keyboard fix that breaks numpad ↵Hubert Maier
usage (#1551) SDL1/2: Exclude AmigaOS4 from returning 0 for .ascii *reset .ascii to 0, when Num-Lock is NOT enabled and keypad directional keys are pressed* (original description) is causing the numpad to play dead completely on AmigaOS4 (no matter if numlock is active or not). This is a workaround for the SCUMM engine, where keycodes are mixed with ASCII codes. Check commit f5ed14e93d85b638c8e49468b2885c1278d56d20 for reference. Fixes bug #10558. Tested with both SDL1 and 2 on AmigaOS4 and with both Indiana Jones games.
2018-04-04SDL: Allow to load a custom game controller mapping fileLMerckx
And add a specific joystick button to open virtual keyboard
2018-03-18SDL: Split joystick mouse event generation into two functionsBastien Bouclet
That way it is easier to implement relative mouse movement in ResidualVM.
2018-01-13SDL: Scale the joystick mouse speed with the vertical window sizeBastien Bouclet
The mouse cursor now moves across the screen in a similar amount of time irrespective of the display resolution.
2018-01-03Merge pull request #1090 from bgK/remove-zaurus-yopyBastien Bouclet
PORTS: Remove the Zaurus and Yopy ports
2017-12-27SDL: Add debug traces for joystick hotplugBastien Bouclet
2017-12-26SDL: Add support for joystick hotplugBastien Bouclet
Fixes #10366.
2017-12-26SDL: Cleanup joystick deadzone handlingBastien Bouclet
2017-12-26SDL: Move the non analog joystick code to the Symbian portBastien Bouclet
Symbian was the only user of that code.
2017-12-26SDL: Initial support for game controllersBastien Bouclet
The button mapping is that of the Vita port Co-Authored-By: rsn8887 <rsn8887@users.noreply.github.com>
2017-12-19PORTS: Remove the Zaurus portBastien Bouclet
There was never an official release. The last unofficial release of ScummVM was 0.6.0. Production ceased in 2007.
2017-12-19PORTS: Remove the Yopy PDA portBastien Bouclet
No official release was ever done for that platform. Production ceased in 2005.
2017-11-19SDL: Improve handling of SDL2 keyboard repeat eventsBastien Bouclet
- Flag them as repeat events - Disable ScummVM's own repeat event generation This fixes keyboard repeat events not being flagged as such with SDL2, and complies with the user's operating system preferences regarding key repeat timings.
2017-10-15BACKENDS: Fix missing mouse events when system cursor cannot be movedColin Snover
Normally with SDL, a mouse motion event will be sent after the system mouse cursor has been moved by a call to SDL_WarpMouseInWindow, but if the system cursor cannot be moved (e.g. because the window does not have mouse focus), games still need to receive these mouse events so they can successfully update the mouse position internally. Otherwise, games continue to think the mouse is still in the original position and will continue to try to perform whatever action is associated with that mouse position. Refs Trac#9689.
2017-10-15BACKENDS: Do not send mouse events to games occurring outside the game draw rectColin Snover
2017-10-15BACKENDS: Refactor OpenGL & SDL graphics backendsColin Snover
This patch refactors the OpenGL and SDL graphics backends, primarily to unify window scaling and mouse handling, and to fix coordinate mapping between the ScummVM window and the virtual game screen when they have different aspect ratios. Unified code for these two backends has been moved to a new header-only WindowedGraphicsManager class, so named because it contains code for managing graphics managers that interact with a windowing system and render virtual screens within a larger physical content window. The biggest behavioral change here is with the coordinate system mapping: Previously, mouse offsets were converted by mapping the whole space within the window as input to the virtual game screen without maintaining aspect ratio. This was done to prevent 'stickiness' when the mouse cursor was within the window but outside of the virtual game screen, but it caused noticeable distortion of mouse movement speed on the axis with blank space. Instead of introducing mouse speed distortion to prevent stickiness, this patch changes coordinate transformation to show the system cursor when the mouse moves outside of the virtual game screen when mouse grab is off, or by holding the mouse inside the virtual game screen (instead of the entire window) when mouse grab is on. This patch also improves some other properties of the GraphicsManager/PaletteManager interfaces: * Nullipotent operations (getWidth, getHeight, etc.) of the PaletteManager/GraphicsManager interfaces are now const * Methods marked `virtual` but not inherited by any subclass have been de-virtualized * Extra unnecessary calculations of hardware height in SurfaceSdlGraphicsManager have been removed * Methods have been renamed where appropriate for clarity (setWindowSize -> handleResize, etc.) * C++11 support improved with `override` specifier added on overridden virtual methods in subclasses (primarily to avoid myself accidentally creating new methods in the subclasses by changing types/names during refactoring) Additional refactoring can and should be done at some point to continue to deduplicate code between the OpenGL and SDL backends. Since the primary goal here was to improve the coordinate mapping, full refactoring of these backends was not completed here.
2017-10-15BACKENDS: Fix some comment typosColin Snover
2017-07-27SDL: Make sure we get the correct window size with SDL2Thierry Crozat
When updating or recreating the window, if we changed the window size at the same time we also toggle between OpenGL and non OpenGL mode, or toggle fullscreen mode, we may have a pending SDL resize event with the wrong size. So we need to make sure to append another one with the correct size to end up with the correct size. This fixes bug #9971.
2017-03-21SDL: Respect OS setting for wheel scroll direction on SDL 2.0.4+Thierry Crozat
The setting was already respected on SDL < 2.0.4 (such as SDL1). If the OS inverts the scrolling direction, this is reflected on the sign of the y value of the SDL event. Since version 2.0.4 the SDL event also had a flag to indicate if the direction is flipped and we were using it to change back the y sign. That means the OS scrolling direction setting was not respected. With this commit we now have a consistent behaviour with all SDL versions (the OS scroll direction setting is respected). If our wheel events are used for something other than scrolling however, we might want to get the actually wheel move direction (i.e. use a Common::EVENT_WHEELDOWN when moving the wheel down even if the OS scroll setting is to flip it). In such a case we might want to revert this change and instead add an additional flag to the event so that we know the scroll direction should be flipped and use it in places where the event is used for scrolling.
2017-03-01SDL: Always use sub-pixel joystick pointer resolutionrsn8887
2017-02-27SDL: fix pointer speed setting 8 (was too slow)rsn8887
2017-02-22SDL: Fix erratic analog pointer + control optionsrsn8887
Fixes erratic speeds in analog pointer motion Implemented option to set analog/keyboard pointer speed and control the analog joystick deadzone. The deadzone option appears only if the build supports analog joystick (via JOY_ANALOG define)
2017-02-18SDL: increase resolution of slow analog pointer motionrsn8887
2017-02-18SDL: Cleanup, replaced _km.multiplier with #definersn8887
2017-02-18SDL: improved internal joystick event handlingrsn8887
2017-02-18SDL: slow analog ('modifier'+stick) made slowerrsn8887
2017-02-17SDL: More fixes to jerky analog joystick pointerrsn8887
For some engines such as Dreamweb that a previous fix did not apply to, this fixes bug 6996: Android: Mouse pointer control with analog joystick is unusable
2017-02-14SDL: Fix jerky/laggy analog joystick mouse controlrsn8887
This fixes bug 6996: Android: Mouse pointer control with analog joystick is unusable
2016-11-08Merge pull request #777 from m-kiewitz/masterEugene Sandulenko
SDL: Fix keyboard on macOS, when using SDL2, fix directional keypad
2016-10-18SDL: Fix typo in function nameOri Avtalion
2016-07-25SDL: Disable keycode remapping when building for WinCEBastien Bouclet
WinCE does not have MapVirtualKey.
2016-07-25SDL: Fix Windows SDL1 keycodes to use the active keyboard layoutBastien Bouclet
2016-07-03SDL: Fix keyboard on macOS, when using SDL2, fix directional keypadMartin Kiewitz
This will hopefully fully fix keyboard issues for macOS / SDL2, for example when pressing "alt-x". Also reset .ascii to 0, when Num-Lock is NOT enabled and keypad directional keys are pressed. This was fixed inside AGI+SCI previously. The latter shouldn't cause issues, but in case it does, the affected engine should get fixed and use keycodes instead.
2016-07-03Revert "SDL: Fix keyboard on macOS, fix directional keypad"Martin Kiewitz
This reverts commit 9aa7174218983bb1cf6fd98325082ca7d37f50fb. For now.
2016-07-03SDL: Fix keyboard on macOS, when using SDL2, fix directional keypadMartin Kiewitz
This will hopefully fully fix keyboard issues for macOS / SDL2, for example when pressing "alt-x". Also reset .ascii to 0, when Num-Lock is NOT enabled and keypad directional keys are pressed. This was fixed inside AGI+SCI previously. The latter shouldn't cause issues, but in case it does, the affected engine should get fixed and use keycodes instead.
2016-05-22SDL: Make TEXTINPUT handling more reliable for SDL2.Johannes Schickel
This reduces the likelihood of entering two characters per keypress in our guy on Windows. In fact, during my brief testing with the filter widget in the launcher I was not able to trigger the former behavior at all anymore.
2016-02-01Merge pull request #657 from lordhoto/scumm-alt-xEugene Sandulenko
ALL: Handle Alt-x internally in SCUMM.
2016-02-01SDL: Don't mix our key code with SDL's.Johannes Schickel
This case for F# keys was forgotten to update in 8530997fff7b5b9d558f7dd6a0d07c236e4de16f.
2016-01-29SDL: Do not quit on Alt-x.Johannes Schickel
This was originally added in cbd867329e018d7eca12b3a8842e52b8db9f494d to support this LucasArts game hotkey. However, Alt-x is used by other engines as hotkey. Most notably AGI's Leisure Suit Larry in the Land of the Lounge Lizards uses it to skip the age protection. Since we handle Alt-x internally in SCUMM now there is no need to keep this around in our backend code.
2015-12-15PS3: Make use of an updated SDL2 versionBastien Bouclet
This version, available at https://bitbucket.org/bgK/sdl_psl1ght, is based on SDL 2.0.3.
2015-12-13SDL: Slight formatting fixes.Johannes Schickel
2015-03-05SDL: Fake key events for unassociated TEXTINPUT events.Johannes Schickel