godot/core/os
Pedro J. Estébanez de9d40a953 Implement universal translation of touch to mouse
Now generating mouse events from touch is optional (on by default) and it's performed by `InputDefault` instead of having each OS abstraction doing it. (*)

The translation algorithm waits for a touch index to be pressed and tracks it translating its events to mouse events until it is raised, while ignoring other pointers.

Furthermore, to avoid an stuck "touch mouse", since not all platforms may report touches raised when the window is unfocused, it checks if touches are still down by the time it's focused again and if so it resets the state of the emulated mouse.

*: In the case of Windows, since it already provides touch-to-mouse translation by itself, "echo" mouse events are filtered out to have it working like the rest.

On X11 a little hack has been needed to avoid a case of a spurious mouse motion event that is generated during touch interaction.

Plus: Improve/fix tracking of current mouse position.

** Summary of changes to settings: **

- `display/window/handheld/emulate_touchscreen` becomes `input/pointing_devices/emulate_touch_from_mouse`
- New setting: `input/pointing_devices/emulate_mouse_from_touch`
2018-04-30 19:03:38 +02:00
..
copymem.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
dir_access.cpp Improved error checking at EditorExportPlatformPC::export_project 2018-03-06 14:23:17 -03:00
dir_access.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
file_access.cpp Mono: Allow loading mscorlib from resources. 2018-01-31 09:20:46 +02:00
file_access.h Added File.get_path and File.get_path_absolute functions 2018-03-13 12:07:37 -03:00
input_event.cpp (Magnify|Pan)Gesture: implement as_text 2018-02-24 10:35:25 +07:00
input_event.h (Magnify|Pan)Gesture: implement as_text 2018-02-24 10:35:25 +07:00
input.cpp Implement Input.set_default_cursor_shape to change the default shape 2018-04-10 11:38:34 -03:00
input.h Implement universal translation of touch to mouse 2018-04-30 19:03:38 +02:00
keyboard.cpp [macOS] Fix keyboard shortcuts on non QWERTY keyboard layouts. 2018-03-28 20:22:59 +03:00
keyboard.h [macOS] Fix keyboard shortcuts on non QWERTY keyboard layouts. 2018-03-28 20:22:59 +03:00
main_loop.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
main_loop.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
memory.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
memory.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
mutex.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
mutex.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
os.cpp Implement universal translation of touch to mouse 2018-04-30 19:03:38 +02:00
os.h iPhone X support and iOS-related fixes 2018-04-11 14:53:24 +07:00
rw_lock.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
rw_lock.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
SCsub style: Fix PEP8 whitespace issues in Python files 2016-11-01 00:35:16 +01:00
semaphore.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
semaphore.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shell.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shell.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread_dummy.cpp Add RWLockDummy for NO_THREADS builds 2018-03-20 05:37:42 +01:00
thread_dummy.h Add RWLockDummy for NO_THREADS builds 2018-03-20 05:37:42 +01:00
thread_safe.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread_safe.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
threaded_array_processor.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00