virtualx-engine/platform/x11
Cosmic Chip Socket cf124b1415 Use XInput2 RawMotion to generate MouseMotion events
The current system for capturing the mouse and generating motion events on X11
has issues with inaccurate and lopsided input. This is because both
XQueryPointer and XWarpPointer work in terms of integer coordinates when the
underlying X11 input driver may be tracking the mouse using subpixel
coordinates. When warping the pointer, the fractional part of the pointer
position is discarded.

To work around this issue, the fix uses raw motion events from XInput 2. These
events report relative motion and are not affected by pointer warping.
Additionally, this means Godot is able to detect motion at a higher resolution
under X11. Because this is raw mouse input, it is not affected by the user's
pointer speed and acceleration settings. This is the same system as SDL2 uses
for its relative motion.

Multitouch input on X requires XInput 2.2. Raw motion events require
XInput 2.0. Since 2.0 is old enough, this is now the minimum requirement to
use Godot on X.
2018-12-14 23:51:20 +01:00
..
export Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
context_gl_x11.cpp Fall back to GLES2 if GLES3 is not working 2018-08-26 16:40:46 +02:00
context_gl_x11.h Fix warnings on virtual methods [-Woverloaded-virtual] [-Wdelete-non-virtual-dtor] 2018-10-02 13:40:17 +02:00
crash_handler_x11.cpp Fixed hang when segfaulting after OS object destroyed (OSX and X11) 2018-09-24 22:21:05 +01:00
crash_handler_x11.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
detect.py Use XInput2 RawMotion to generate MouseMotion events 2018-12-14 23:51:20 +01:00
godot_x11.cpp Check getcwd return in X11 platform main. 2018-10-07 14:50:14 +02:00
joypad_linux.cpp Update copyright statements to 2018 2018-01-01 14:40:47 +01:00
joypad_linux.h Make core/ includes absolute, remove subfolders from include path 2018-09-12 09:52:22 +02:00
key_mapping_x11.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
key_mapping_x11.h Make core/ includes absolute, remove subfolders from include path 2018-09-12 09:52:22 +02:00
logo.png Optimize images losslessly using oxipng -o6 --strip all --zopfli 2018-06-28 19:17:41 +02:00
os_x11.cpp Use XInput2 RawMotion to generate MouseMotion events 2018-12-14 23:51:20 +01:00
os_x11.h Use XInput2 RawMotion to generate MouseMotion events 2018-12-14 23:51:20 +01:00
platform_config.h SCons: Remove avoidable defines from main env's CPPPATH 2018-10-01 11:59:22 +02:00
platform_x11_builders.py Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
power_x11.cpp Update copyright statements to 2018 2018-01-01 14:40:47 +01:00
power_x11.h Make core/ includes absolute, remove subfolders from include path 2018-09-12 09:52:22 +02:00
SCsub SCons: Build thirdparty code in own env, disable warnings 2018-09-28 14:07:39 +02:00