summaryrefslogtreecommitdiffstats
path: root/platform/x11
Commit message (Collapse)AuthorAgeFilesLines
* SCons: Fix checks for clang in env['CXX']Rémi Verschelde2018-09-251-3/+3
| | | | They would match the whole path instead of only the filename.
* Fixed hang when segfaulting after OS object destroyed (OSX and X11)Ibrahn Sahir2018-09-241-2/+4
| | | | | | | | | The two POSIX style crash handlers (OSX and X11) now remove their signal handlers when they are destroyed. Additonally if they are called while no OS singleton is set, they will simply abort(). This should not happen now that they remove themselves, but if a future change seperates OS object and crash handler lifetimes, this may be easier to report/debug than hanging on SIGSEGV.
* Merge pull request #22070 from capnm/fix_Input.set_default_cursor_shape_take2Rémi Verschelde2018-09-191-4/+7
|\ | | | | Fix set_default_cursor_shape interaction with Control nodes
| * Fix set_default_cursor_shape interaction with Control nodesMartin Capitanio2018-09-151-4/+7
| | | | | | | | | | | | Do not call `set_cursor_shape` when the cursor is inside the `Control` node. Make it work for x11 in MOUSE_MODE_CONFINED.
* | Fix Input::set_custom_mouse_cursor showing cursor when it's invisibleGuilherme Felipe2018-09-171-1/+3
|/
* Fix set_custom_mouse_cursor changing to incorrect cursor shapeGuilherme Felipe2018-09-131-2/+3
| | | | [Docs] Add class ref for Input::set_default_cursor_shape
* Merge pull request #21753 from guilhermefelipecgs/fix_confined_modeRémi Verschelde2018-09-121-5/+12
|\ | | | | Fixes to mouse mode confined and captured
| * Fixes to mouse mode confined and capturedGuilherme Felipe2018-09-051-5/+12
| | | | | | | | These modes will work on Linux in the same way as Windows.
* | Merge pull request #21914 from hpvb/fix-21720Rémi Verschelde2018-09-121-0/+20
|\ \ | | | | | | When resizing an X11 window wait for the WM to process our request
| * | When resizing an X11 window wait for the WM to process our requestHein-Pieter van Braam2018-09-101-0/+20
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #21910 from hpvb/fix-8145-x11Rémi Verschelde2018-09-122-0/+23
|\ \ | | | | | | Update X11 global mouse position at startup
| * | Update X11 global mouse position at startupHein-Pieter van Braam2018-09-092-0/+23
| |/ | | | | | | | | | | | | | | | | | | | | | | | | 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)
* / Make core/ includes absolute, remove subfolders from include pathRémi Verschelde2018-09-127-12/+12
|/ | | | | | 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.
* Really fix the custom cursor hotspotMartin Capitanio2018-09-041-0/+1
| | | | | | Add check for negative values. Fixes #21721
* Fix custom cursor hotspotGuilherme Felipe2018-09-031-0/+1
| | | | | Cursor hotspot must be inside image on Linux. Adding validation for all platforms for consistency.
* Merge pull request #21387 from hpvb/fix-15324Rémi Verschelde2018-08-272-58/+82
|\ | | | | Fall back to GLES2 if GLES3 is not working
| * Fall back to GLES2 if GLES3 is not workingHein-Pieter van Braam2018-08-262-58/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | When setting an X11 icon fails, try halving the sizeHein-Pieter van Braam2018-08-271-17/+58
|/ | | | | | | | | | | | 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
* Support more X11 dialogs for X11::alert()Hein-Pieter van Braam2018-08-251-5/+59
| | | | | | 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.
* Merge pull request #20712 from marcelofg55/midi_open_closeJuan Linietsky2018-08-241-4/+0
|\ | | | | Add OS::open_midi_inputs and OS::close_midi_inputs
| * Add OS::open_midi_inputs and OS::close_midi_inputsMarcelo Fernandez2018-08-041-4/+0
| |
* | Make some debug prints verbose-only, remove othersRémi Verschelde2018-08-242-14/+1
| |
* | Add print_verbose to print to stdout only in verbose modeRémi Verschelde2018-08-241-14/+7
| | | | | | | | | | | | Equivalent of the cumbersome: if (OS::get_singleton()->is_stdout_verbose()) print_line(msg);
* | BPTC supportelasota2018-08-211-1/+1
| |
* | Replace XRaiseWindow with a _NET_ACTIVE_WINDOW ClientRequestHein-Pieter van Braam2018-08-161-2/+15
|/ | | | | This fixes the editor on X11 not getting put on the foreground when a debugged project hits an error or breakpoint.
* Running builder (content generator) functions in subprocesses on WindowsViktor Ferenczi2018-07-272-5/+20
| | | | | | | | | | | | | | | | | | | | | - Refactored all builder (make_*) functions into separate Python modules along to the build tree - Introduced utility function to wrap all invocations on Windows, but does not change it elsewhere - Introduced stub to use the builders module as a stand alone script and invoke a selected function There is a problem with file handles related to writing generated content (*.gen.h and *.gen.cpp) on Windows, which randomly causes a SHARING VIOLATION error to the compiler resulting in flaky builds. Running all such content generators in a new subprocess instead of directly inside the build script works around the issue. Yes, I tried the multiprocessing module. It did not work due to conflict with SCons on cPickle. Suggested workaround did not fully work either. Using the run_in_subprocess wrapper on osx and x11 platforms as well for consistency. In case of running a cross-compilation on Windows they would still be used, but likely it will not happen in practice. What counts is that the build itself is running on which platform, not the target platform. Some generated files are written directly in an SConstruct or SCsub file, before the parallel build starts. They don't need to be written in a subprocess, apparently, so I left them as is.
* Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam2018-07-261-6/+6
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge pull request #20154 from marcelofg55/midi_driverRémi Verschelde2018-07-253-1/+13
|\ | | | | Added a new MIDIDriver class
| * Added a new MIDIDriver classMarcelo Fernandez2018-07-213-1/+13
| |
* | SCons: Add "execinfo" option to force linking libexecinfoRémi Verschelde2018-07-221-0/+4
| | | | | | | | Fixes #20035.
* | -Fix disable_3d flagJuan Linietsky2018-07-211-2/+10
|/ | | | -Add extra flag optimize=[size,speed] to be able to prioritize size
* Fix some more build issues after c69de2ba4Rémi Verschelde2018-07-201-2/+2
| | | | Fixes #20301.
* -Project/Editor settings now use new inspectorJuan Linietsky2018-07-192-2/+11
| | | | | | | -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
* Style: Format code with clang-format 6.0.1Rémi Verschelde2018-07-181-2/+2
|
* Add a new notification to detect crashes on native scriptsMarcelo Fernandez2018-07-021-0/+4
|
* Optimize images losslessly using `oxipng -o6 --strip all --zopfli`Hugo Locurcio2018-06-281-0/+0
|
* Merge pull request #19718 from thduynguyen/bug_fixesRémi Verschelde2018-06-251-1/+11
|\ | | | | bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED
| * bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLEDDuy-Nguyen Ta2018-06-221-1/+11
| |
* | IME context detection.Saracen2018-06-112-1/+26
|/
* Tweak some help texts in the build systemHugo Locurcio2018-06-071-2/+2
| | | | | This also removes `unix_global_settings_path` from SConstruct since it is no longer used.
* SCons: Allow unbundling libwebsockets and miniupnpcRémi Verschelde2018-06-071-12/+18
|
* Change position of validation in set_custom_mouse_cursorGuilherme Felipe2018-05-281-1/+2
|
* Merge pull request #19210 from guilhermefelipecgs/fix_invalid_imageMax Hilbrunner2018-05-281-0/+1
|\ | | | | Add validation in set_custom_mouse_cursor
| * Add validation in set_custom_mouse_cursorGuilherme Felipe2018-05-271-0/+1
| | | | | | | | Check if the image is valid.
* | Fix memory leak in set_custom_mouse_cursorGuilherme Felipe2018-05-261-1/+4
|/
* More fixes to set_borderless_windowGuilherme Felipe2018-05-231-0/+3
| | | | | | [x11] Preserve window size when calling this method. [osx] Make sure it don't make the window resizable if it's not needed. [windows] clean up the code.
* Fix #19033Guilherme Felipe2018-05-201-1/+1
| | | | | | | - Fix a bug when mouse is confined don't update the cursor shape. - Don't let the mouse leave the window when resizing to a smaller resolution when MOUSE_MODE_CONFINED. - Fix set_borderless_window to preserve the actual video_mode.widht/height.
* Reset the cursor with Input.set_custom_mouse_cursor(null)Guilherme Felipe2018-05-101-0/+8
|
* Add support for atlas texture on set_custom_mouse_cursorGuilherme Felipe2018-05-091-6/+36
|
* Merge pull request #14622 from bruvzg/non-rectangular-windowsHein-Pieter van Braam2018-05-085-20/+107
|\ | | | | Experimental support for windows with per-pixel transparency.