summaryrefslogtreecommitdiff
path: root/platform/x11/os_x11.cpp
AgeCommit message (Collapse)Author
2018-12-15switch middle and secondary mouse buttons orderMikko Mustonen
2018-12-14Use XInput2 RawMotion to generate MouseMotion eventsCosmic Chip Socket
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-14Merge pull request #20385 from moiman100/unify-double-clickingRémi Verschelde
Added double clicking to all buttons on Linux and Javascript
2018-12-14Merge pull request #20063 from moiman100/fix-button-maskRémi Verschelde
Unified button mask behavior across platforms
2018-12-07Merge pull request #22733 from guilhermefelipecgs/fix_wm_classRémi Verschelde
[x11] Use "application/config/name" for WM_CLASS
2018-11-18Fix X11 running a project with fullscreen setting on and resizable off with ↵Marcelo Fernandez
multiple screens
2018-11-06Set DRI_PRIME=1 by default on X11 if not already setHein-Pieter van Braam
This mirrors behavior on Windows and MacOSX where Godot tries to default to a dGPU if it exists. This doesn't work for Nvidia optimus yet but this can maybe be added later.
2018-11-01Fix init of VisualServerRasterRémi Verschelde
Contrarily to what #23434 assumed, this is not a memory leak, the VisualServerRaster instance is passed as a parameter to VisualServerWrapMT's constructor. Fixes #23437.
2018-11-01Fix initialization of visual server in all platformsGeorge Marques
Avoid leaking an extra instance when using threads. Also fix threaded loading issues on Android and iOS.
2018-10-25Repaired mistyped of 'its' on several files.M. Huri
2018-10-06Remove redundant "== false" codeAaron Franke
Some of this code has been re-organized. f
2018-10-06Remove redundant "== true" codeAaron Franke
If it can be compared to a boolean, it can be evaluated as one in-place.
2018-10-05[x11] Use "application/config/name" for WM_CLASSGuilherme Felipe
2018-10-01Changed the comment where reduz yells at the X11 API to a less explicitive oneLikeLakers2
2018-09-19Merge pull request #22070 from capnm/fix_Input.set_default_cursor_shape_take2Rémi Verschelde
Fix set_default_cursor_shape interaction with Control nodes
2018-09-17Fix Input::set_custom_mouse_cursor showing cursor when it's invisibleGuilherme Felipe
2018-09-15Fix set_default_cursor_shape interaction with Control nodesMartin Capitanio
Do not call `set_cursor_shape` when the cursor is inside the `Control` node. Make it work for x11 in MOUSE_MODE_CONFINED.
2018-09-13Fix set_custom_mouse_cursor changing to incorrect cursor shapeGuilherme Felipe
[Docs] Add class ref for Input::set_default_cursor_shape
2018-09-12Merge pull request #21753 from guilhermefelipecgs/fix_confined_modeRémi Verschelde
Fixes to mouse mode confined and captured
2018-09-12Merge pull request #21914 from hpvb/fix-21720Rémi Verschelde
When resizing an X11 window wait for the WM to process our request
2018-09-12Merge pull request #21910 from hpvb/fix-8145-x11Rémi Verschelde
Update X11 global mouse position at startup
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-09-10When resizing an X11 window wait for the WM to process our requestHein-Pieter van Braam
On X11 when we send an XResizeWindow request to the X server it is happy to say it is done when the request has been handed over to the window manager. The window manager itself may however take some time to actually do the resize. Godot expects that a resize request is immediate. To work around this issue we could implement the whole _NET_WM_SYNC_REQUEST protocol. However this protocol does not fit very well with the way we currently process X events and would when implemented in the current framework still cause a 1 frame delay between a resize request and the actual resize happening. This fixes #21720
2018-09-09Update X11 global mouse position at startupHein-Pieter van Braam
When we start the engine we haven't yet gotten any X11 motion events so we don't yet know where our mouse cursor is located. Instead we now query the X server for this information when we start and update the appropriate values. In addition when we move the window we also update the mouse position based off of X server knowledge as we will also not have received any mouse motion events. this fixes #8145 (for X11 only)
2018-09-05Fixes to mouse mode confined and capturedGuilherme Felipe
These modes will work on Linux in the same way as Windows.
2018-09-04Really fix the custom cursor hotspotMartin Capitanio
Add check for negative values. Fixes #21721
2018-09-03Fix custom cursor hotspotGuilherme Felipe
Cursor hotspot must be inside image on Linux. Adding validation for all platforms for consistency.
2018-08-27Merge pull request #21387 from hpvb/fix-15324Rémi Verschelde
Fall back to GLES2 if GLES3 is not working
2018-08-27When setting an X11 icon fails, try halving the sizeHein-Pieter van Braam
When setting an icon that is too large previously Godot would die with a X Error of failed request: BadLength error. To avoid this we install an error handler right before we set an icon. If the error handler triggers we halve the icon size until it works or until we've reached a 0 size on either width or height. We print a warning when this happens to alert developers. This fixes #19716
2018-08-26Fall back to GLES2 if GLES3 is not workingHein-Pieter van Braam
This adds a static is_viable() method to all rasterizers which has to be called before initializing the rasterizer. This allows us to check what rasterizer to use in OS::initialize together with the GL context initialization. This commit also adds a new project setting "rendering/quality/driver/driver_fallback" which allows the creator of a project to specify whether or not fallback to GLES2 is allowed. This setting is ignored for the editor so the editor will always open even if the project itself cannot run. This will hopefully reduce confusion for users downloading projects from the internet. We also no longer crash when GLES3 is not functioning on a platform. This fixes #15324
2018-08-25Support more X11 dialogs for X11::alert()Hein-Pieter van Braam
Modern distributions such as Fedora do not ship 'xdialog' with their default deployment. This commit adds support for Gnome's Zenity as well as KDE's kdialog.
2018-08-24Merge pull request #20712 from marcelofg55/midi_open_closeJuan Linietsky
Add OS::open_midi_inputs and OS::close_midi_inputs
2018-08-24Make some debug prints verbose-only, remove othersRémi Verschelde
2018-08-24Add print_verbose to print to stdout only in verbose modeRémi Verschelde
Equivalent of the cumbersome: if (OS::get_singleton()->is_stdout_verbose()) print_line(msg);
2018-08-21BPTC supportelasota
2018-08-16Replace XRaiseWindow with a _NET_ACTIVE_WINDOW ClientRequestHein-Pieter van Braam
This fixes the editor on X11 not getting put on the foreground when a debugged project hits an error or breakpoint.
2018-08-12Added double clicking to all buttonsMikko Mustonen
2018-08-04Add OS::open_midi_inputs and OS::close_midi_inputsMarcelo Fernandez
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-07-21Added a new MIDIDriver classMarcelo Fernandez
2018-07-19-Project/Editor settings now use new inspectorJuan Linietsky
-Project/Editor settings now show tooltips properly -Settings thar require restart now will show a restart warning -Video driver is now visible all the time, can be changed easily -Added function to request current video driver
2018-07-18Style: Format code with clang-format 6.0.1Rémi Verschelde
2018-07-11Fixed button mask behaviormm
2018-06-25Merge pull request #19718 from thduynguyen/bug_fixesRémi Verschelde
bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED
2018-06-22bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLEDDuy-Nguyen Ta
2018-06-11IME context detection.Saracen
2018-05-28Change position of validation in set_custom_mouse_cursorGuilherme Felipe
2018-05-28Merge pull request #19210 from guilhermefelipecgs/fix_invalid_imageMax Hilbrunner
Add validation in set_custom_mouse_cursor
2018-05-27Add validation in set_custom_mouse_cursorGuilherme Felipe
Check if the image is valid.
2018-05-26Fix memory leak in set_custom_mouse_cursorGuilherme Felipe