Commit graph

429 commits

Author SHA1 Message Date
Aaron Franke
4f7b33cdcf Remove redundant "== false" code
Some of this code has been re-organized.
f
2018-10-06 16:20:41 -04:00
Aaron Franke
37386f112b Remove redundant "== true" code
If it can be compared to a boolean, it can be evaluated as one in-place.
2018-10-06 16:12:36 -04:00
Guilherme Felipe
f402253939 [x11] Use "application/config/name" for WM_CLASS 2018-10-05 17:18:10 -03:00
LikeLakers2
5515c303f8 Changed the comment where reduz yells at the X11 API to a less explicitive one 2018-10-01 19:09:03 -04:00
Rémi Verschelde
0274ded34c
Merge pull request #22070 from capnm/fix_Input.set_default_cursor_shape_take2
Fix set_default_cursor_shape interaction with Control nodes
2018-09-19 09:26:21 +02:00
Guilherme Felipe
360204e532 Fix Input::set_custom_mouse_cursor showing cursor when it's invisible 2018-09-17 11:37:54 -03:00
Martin Capitanio
64cecf9d61 Fix set_default_cursor_shape interaction with Control nodes
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-15 20:54:22 +02:00
Guilherme Felipe
04aef23585 Fix set_custom_mouse_cursor changing to incorrect cursor shape
[Docs] Add class ref for Input::set_default_cursor_shape
2018-09-13 15:13:57 -03:00
Rémi Verschelde
fe78aa0c30
Merge pull request #21753 from guilhermefelipecgs/fix_confined_mode
Fixes to mouse mode confined and captured
2018-09-12 21:37:30 +02:00
Rémi Verschelde
143f522adb
Merge pull request #21914 from hpvb/fix-21720
When resizing an X11 window wait for the WM to process our request
2018-09-12 14:36:57 +02:00
Rémi Verschelde
a4958bb867
Merge pull request #21910 from hpvb/fix-8145-x11
Update X11 global mouse position at startup
2018-09-12 11:03:36 +02:00
Rémi Verschelde
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
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-12 09:52:22 +02:00
Hein-Pieter van Braam
9a1deedb84 When resizing an X11 window wait for the WM to process our request
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-10 00:12:23 +02:00
Hein-Pieter van Braam
4b92ca1cce Update X11 global mouse position at startup
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-09 22:17:27 +02:00
Guilherme Felipe
7d6364d431 Fixes to mouse mode confined and captured
These modes will work on Linux in the same way as Windows.
2018-09-05 11:24:06 -03:00
Martin Capitanio
bcee65284e Really fix the custom cursor hotspot
Add check for negative values.

Fixes #21721
2018-09-04 04:42:23 +02:00
Guilherme Felipe
e5470cfa70 Fix custom cursor hotspot
Cursor hotspot must be inside image on Linux. Adding validation for all
platforms for consistency.
2018-09-03 09:57:07 -03:00
Rémi Verschelde
c1f687c681
Merge pull request #21387 from hpvb/fix-15324
Fall back to GLES2 if GLES3 is not working
2018-08-27 16:54:22 +02:00
Hein-Pieter van Braam
3d4b7c6c5f When setting an X11 icon fails, try halving the size
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-27 01:28:11 +02:00
Hein-Pieter van Braam
08f452d1a9 Fall back to GLES2 if GLES3 is not working
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-26 16:40:46 +02:00
Hein-Pieter van Braam
c8464eb69f Support more X11 dialogs for X11::alert()
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-25 00:53:45 +02:00
Juan Linietsky
c6b340ea98
Merge pull request #20712 from marcelofg55/midi_open_close
Add OS::open_midi_inputs and OS::close_midi_inputs
2018-08-24 12:17:14 -03:00
Rémi Verschelde
52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
Rémi Verschelde
de59fe04e7 Add print_verbose to print to stdout only in verbose mode
Equivalent of the cumbersome:
if (OS::get_singleton()->is_stdout_verbose())
	print_line(msg);
2018-08-24 09:23:20 +02:00
elasota
35f6ba5c5d BPTC support 2018-08-21 22:56:04 -04:00
Hein-Pieter van Braam
827cadafc8 Replace XRaiseWindow with a _NET_ACTIVE_WINDOW ClientRequest
This fixes the editor on X11 not getting put on the foreground when a
debugged project hits an error or breakpoint.
2018-08-16 21:36:37 +02:00
Mikko Mustonen
51fa23a52a Added double clicking to all buttons 2018-08-12 12:41:31 +03:00
Marcelo Fernandez
05fc12ddb6 Add OS::open_midi_inputs and OS::close_midi_inputs 2018-08-04 10:07:46 -03:00
Hein-Pieter van Braam
0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
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-26 00:54:16 +02:00
Marcelo Fernandez
7a5f9fc08e Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
Juan Linietsky
c69de2ba46 -Project/Editor settings now use new inspector
-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-19 19:02:04 -03:00
Rémi Verschelde
7c9f7452f4 Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
mm
bd9c592c52 Fixed button mask behavior 2018-07-11 01:15:03 +03:00
Rémi Verschelde
74bd1bf1c2
Merge pull request #19718 from thduynguyen/bug_fixes
bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED
2018-06-25 16:10:40 +02:00
Duy-Nguyen Ta
25ad5f8a35 bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED 2018-06-22 10:42:28 -04:00
Saracen
c5bdb5b1d8 IME context detection. 2018-06-11 17:22:11 +01:00
Guilherme Felipe
c8e0ec0580 Change position of validation in set_custom_mouse_cursor 2018-05-28 09:36:30 -03:00
Max Hilbrunner
856d945248
Merge pull request #19210 from guilhermefelipecgs/fix_invalid_image
Add validation in set_custom_mouse_cursor
2018-05-28 12:52:10 +02:00
Guilherme Felipe
aad6bdad94 Add validation in set_custom_mouse_cursor
Check if the image is valid.
2018-05-27 20:55:05 -03:00
Guilherme Felipe
aa174d963d Fix memory leak in set_custom_mouse_cursor 2018-05-26 15:56:35 -03:00
Guilherme Felipe
8c17d8e6fe More fixes to set_borderless_window
[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.
2018-05-23 17:42:31 -03:00
Guilherme Felipe
28d24c4f66 Fix #19033
- 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.
2018-05-20 20:53:04 -03:00
Guilherme Felipe
50a0220d2d Reset the cursor with Input.set_custom_mouse_cursor(null) 2018-05-10 20:02:12 -03:00
Guilherme Felipe
8ead09342d Add support for atlas texture on set_custom_mouse_cursor 2018-05-09 12:44:43 +00:00
Hein-Pieter van Braam
e668757aa9
Merge pull request #14622 from bruvzg/non-rectangular-windows
Experimental support for windows with per-pixel transparency.
2018-05-08 16:44:35 +02:00
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
Guilherme Felipe
62b835a2cd Fix custom cursor when it's hidden
[Linux] Ensures that the custom cursor will be used when changing to
MOUSE_MODE_VISIBLE. Fix #3086

[Windows] Fix cursor flickering when MOUSE_MODE_HIDDEN.

[Mac] Fix possible cursor flicker when MOUSE_MODE_HIDDEN.
2018-04-09 10:28:20 -03:00
bruvzg
ddae098dee
Experimental support for windows with per-pixel transparency (macOS, X11 and Windows). 2018-04-07 17:11:45 +03:00
Guilherme Felipe
dc57632d66 Remove size restriction for mouse cursor 2018-04-05 15:41:09 -03:00
Marcelo Fernandez
d780d774aa Clean and expose get_audio/video_driver_* funcs on OS class 2018-03-04 14:18:05 -03:00
bruvzg
f0d24de960
Fix --help output, allow renderer override from command line (--video-driver). 2018-03-02 10:05:14 +02:00
karroffel
eac4c984df add GLES 2 renderer for 2D
This commit adds a new rendering backend, GLES2, and adds a
project setting to enable it.

Currently this backend can only be used on the X11 platform,
but integrating into other platforms is planned.
2018-03-01 15:12:30 +01:00
Hein-Pieter van Braam
d702d7b335 Fix various valgrind reported uninitialized variable uses 2018-02-28 21:55:13 +01:00
luz.paz
612ab4bbc6 Fix typos with codespell
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt`
Whitelist consists of:
```
ang
doubleclick
lod
nd
que
te
unselect
```
2018-02-21 19:46:06 +01:00
Rémi Verschelde
2b7037b148
Merge pull request #16675 from Iskustvo/improved_error_detectioin_in_move-to-trash_for_Linux
[X11] Improving error detection in move_to_trash
2018-02-19 20:50:58 +01:00
Iskustvo
268d7c7c5b [X11] Improving error detection in move_to_trash 2018-02-18 17:02:19 +01:00
Pedro J. Estébanez
935a99e758 Remove window decorations for fullscreen on X11 2018-02-16 22:09:17 +01:00
Rémi Verschelde
e0f43e0678
Merge pull request #15564 from RandomShaper/adpod-topmost
Add new window setting: always on top
2018-02-14 16:43:40 +01:00
Rémi Verschelde
7d7f8d9e54
Merge pull request #15864 from GodotExplorer/pr-get_unique_id-desktop-impl
Implement more methods for OS on Desktop platforms
2018-02-14 16:11:53 +01:00
Marcelo Fernandez
ea1d726a46 Added OS::center_window to center the window precisely on desktop platforms 2018-02-12 15:45:41 -03:00
geequlim
df1c16d0fe X11: implement OS.get_unique_id 2018-01-31 09:40:33 +08:00
Hein-Pieter van Braam
fb60f2dbe6 Fix Copy/Paste problems on X11
The target of the TARGETS type should be XA_ATOM and not XA_TARGETS when
requested. Since we are sending a number of ATOMS the size should be set
to the integer size and not the char size.

The size field of the atoms is also the number of atoms and not the size
of the array. This caused some clients to wrongly interpret the data and
read garbage in the X11 packet.

I also add the more modern representation for UTF-8 and clarify the
error message if a client attempts to request a type we don't know
about.

This fixes #10431
2018-01-29 18:38:04 +01:00
Rémi Verschelde
94f315df01 Silence verbose stderr info message on X11 2018-01-24 21:49:11 +01:00
Pedro J. Estébanez
ee2c31d306 Add new window setting: always on top
Implemented for Windows and Linux.
2018-01-05 21:31:04 +01:00
Andreas Haas
fab0d53f7e
X11: Add missing return in OS_X11::initialize(). 2018-01-05 12:11:45 +01:00
Rémi Verschelde
e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Emmanuel Leblond
e315c94900 Change OS::initialize signature to return Error (fix segfault on x11) 2018-01-04 15:15:55 +01:00
Rémi Verschelde
5019f5e298
Merge pull request #15092 from guilhermefelipecgs/fix_infinite_loop_on_splash_screen
Fix infinite loop on splash screen on tiling windows managers
2018-01-03 11:41:38 +01:00
Rémi Verschelde
6322b0bbb7
Merge pull request #12814 from guilhermefelipecgs/add_hardware_custom_cursor
Custom hardware-accelerated mouse cursor
2018-01-03 08:35:59 +01:00
Rémi Verschelde
b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Guilherme Silva
2a6035dff4 Fix infinite loop introduced by 6f3486c4 on tiling windows managers 2017-12-27 08:44:18 -02:00
Enzo Nocera
6f3486c486 x11: Fix maximized splash-boot screen bug.
Fixes #14336
2017-12-24 01:16:17 +01:00
Guilherme Silva
a392dbdbe3 Add implementation for custom hardware cursor 2017-12-17 13:40:29 -02:00
Juan Linietsky
652c98a7be Add epic hack so vsync can be toggled in run-time from script. Fixes #14458.
Call needs to be routed via visual server to reach the proper thread.
2017-12-16 17:11:02 -03:00
Rémi Verschelde
fb84b49d87 Fix type mismatch in OS::set_borderless_window
Closes #14663.
2017-12-14 19:16:20 +01:00
Juan Linietsky
f3ad14224e -Add lightmapper
-Fixes to unwrapper (remove degenerates), makes Thekla not crash
-Added optional cancel button in EditorProgress
-Added function to force processing of events (needed for cancel button)
2017-12-14 09:01:27 -03:00
Pedro J. Estébanez
ef64bfd687 Fix no mouse if touch device present in X11
Plus several improvements in this area.

Sadly, grabbing has been disabled until a better solution is found.

Fixes #14427.
2017-12-10 07:14:59 +01:00
Andreas Haas
94a573bb39
X11: Process entire event queue at startup.
Should fix #14336
2017-12-09 23:24:25 +01:00
Stefano Bonicatti
c067cf2c6a Fixes vsync setting ignored when using a separate thread for rendering
Setting the vsync in the main thread, after the rendering thread starts
and takes the OpenGL context fails, so we need to do that before.
Also, for some reason, the main thread cannot make current the context
anymore.

Fixes #13447
2017-12-09 01:43:23 +01:00
Rémi Verschelde
13c2ff9320 Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
Pedro J. Estébanez
6decbec461 Implement multitouch on X11 2017-12-06 23:47:09 +01:00
Rémi Verschelde
450bdda97a
Merge pull request #12387 from santouits/x1111
Fix x11 boot logo position in fullscreen and in maximized
2017-11-20 15:48:08 +01:00
Rémi Verschelde
32c12a92a5 Add initial support for the XDG Base Directory spec
Spec version 0.7 from https://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html
(latest as of this commit).

Three virtual methods are added to OS for the various XDG paths we will use:
- OS::get_data_path gives XDG_DATA_HOME, or if missing:
  ~/.local/share on X11, ~/Library/Application Support/ on macOS and %APPDATA% on Windows
- OS::get_config_path gives XDG_CONFIG_HOME, or if missing:
  ~/.config on X11, ~/Library/Application Support/ on macOS and %APPDATA% on Windows
- OS::get_cache_path gives XDG_CACHE_HOME, or if missing:
  ~/.cache on X11, ~/Library/Caches on macOS and %APPDATA% on Windows

So for Windows there are no changes, for Linux we follow the full split spec
and for macOS stuff will move from ~/.godot to ~/Library/Application Support/Godot.

Support for system-wide installation of templates on Unix was removed for now,
as it's a bit hackish and I don't think anyone uses it.

user:// will still be OS::get_data_path() + "/godot/app_userdata/$name" by
default, but when using the application/config/use_shared_user_dir option
it will now use XDG_DATA_HOME/$name, e.g. ~/.local/share/MyGame.

For now everything still goes in EditorSettings::get_settings_dir(), but
this will be changed in a later commit to make use of the new splitting
where relevant.

Part of #3513.
2017-11-19 20:54:24 +01:00
Rémi Verschelde
73049d115e Rename OS::get_data_dir to OS::get_user_data_dir
Will be needed to avoid confusion with system data path (XDG_DATA_HOME)
and editor data dir in upcoming refactoring.
2017-11-17 20:55:09 +01:00
Juan Linietsky
d09160a8b6 Make video mode initialization more intuitive, fixes #12022 2017-11-09 13:02:26 -03:00
Juan Linietsky
7715a261d5
Merge pull request #12262 from AndreaCatania/pplug
Physics server plug
2017-11-03 23:39:44 -03:00
AndreaCatania
7a9ca08f16 Implemented physics plug
Moved init_physics

Implemented physics 2D plug

Fix clang

Fix clang

Fix static check

Fix clang

Fix static check

Moved physics server initialization

Moved physics server settings initialization
2017-11-04 03:25:51 +01:00
N0hbdy
f3fc07272c Add Colemak keybindings to editor for osx 2017-10-30 22:51:02 +01:00
Marcelo Fernandez
be6ac69f75 Implemented OS get_latin_keyboard_variant on x11 2017-10-30 12:14:40 -03:00
santouits
55fae24710 Fix x11 boot logo position in fullscreen and in maximized 2017-10-26 01:06:26 +03:00
Marcelo Fernandez
2baf54526b Fix BSD compile issues 2017-10-17 16:50:41 +00:00
J08nY
b1252caa10
Use binary names instead of absolute paths in calls to OS::execute.
Now that #12009 is merged, we should let the system find the binary on
the users $PATH and don't assume we know where to look for them in
different distributions.
2017-10-13 16:45:24 +02:00
Rémi Verschelde
79e247d74e Drop unusued LEGACYGL_ENABLED check
[ci skip]
2017-10-13 00:18:04 +02:00
Marcelo Fernandez
20918587d3 FileSystemDock will now remove files/dirs to trashcan using OS::move_to_trash 2017-09-25 21:49:01 -03:00
Rémi Verschelde
0eec37e247 Merge pull request #11141 from fcobos/x11_borderless_switch_fix
X11 - Adding borders back to a borderless window was not working.
2017-09-21 10:23:52 +02:00
letheed
5ad9be4c24 Rename pos to position in user facing methods and variables
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:

* pos -> position
* rot -> rotation
* loc -> location

C++ variables are left as is.
2017-09-20 13:11:10 +02:00
Rémi Verschelde
53bbc046ee Merge pull request #11252 from marcelofg55/fix_noaudio_crash
Fix crash when no audio driver is available
2017-09-17 22:48:22 +02:00
Thomas Herzog
7dffed485b Merge pull request #11230 from maxim-sheronov/fix_enum_bindings
Fix enums bindings
2017-09-15 08:43:35 +02:00
Marcelo Fernandez
7a4c0ff35e Fix crash when no audio driver is available 2017-09-13 20:54:55 -03:00
Maxim Sheronov
0fffa45158 Fix enums bindings
Add missed bindings for enums
Move some enums to class to have correct output of api.json
2017-09-13 20:57:07 +03:00
Marcelo Fernandez
83fe937362 Added a crash handler to dump the backtrace on Windows, Linux and OS X 2017-09-13 10:07:23 -03:00
Felix M. Cobos
2e74bf488b Adding borders back to a borderless window was not working. 2017-09-12 18:53:34 +02:00
Felix M. Cobos
3b5ee014bd Hint the window manager to disable desktop compositing in fullscreen mode. 2017-09-09 23:24:19 +02:00
Poommetee Ketson
459f526119 Fix typos 'a' and 'an' 2017-09-02 21:19:06 +07:00
Rémi Verschelde
7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde
bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Rémi Verschelde
612099e377 Merge pull request #10591 from Rubonnek/possible-null-ptr-dereference
Added/Fixed null pointer checks
2017-08-27 02:10:56 +02:00
Wilson E. Alvarez
7a07895920 Added/Fixed null pointer checks 2017-08-26 16:58:47 -04:00
Wilson E. Alvarez
1577f41653 Fixed several memory leaks 2017-08-25 08:47:05 -04:00
Rémi Verschelde
7f49e2a7a0 Merge pull request #10487 from marcelofg55/curscr_as_default
p_screen param from get_screen_* funcs now default to the current screen
2017-08-22 08:12:04 +02:00
Marcelo Fernandez
63f847b306 p_screen param from get_screen_* funcs now default to the current screen 2017-08-21 18:28:29 -03:00
Wilson E. Alvarez
738d2ab969 Removed unnecessary assignments 2017-08-21 15:15:55 -04:00
Richard Adenling
398e0930dc Set the X11 class hint before mapping the window
Setting the class hint before mapping the window will allow some
window managers to determine if a window should be treated specially.
This is also in accordance with the ICCCM spec which says that
WM_CLASS should only be changed when a window is in a
withdrawn (unmapped) state.

Fixes #10429
2017-08-19 00:16:46 +02:00
Marcelo Fernandez
1ca107a057 Fix double finalisation of audio drivers 2017-08-02 11:45:19 -03:00
Julian Murgia
71dcb7fcc4 Fixes power management on x11 platform and removes explicit NULL pointer dereference. 2017-07-26 23:29:51 +02:00
Jia Wang
2f5b7f8777 Workaround to allow pasting unicode characters from X selection.
Fixes #2491.
Fixes #9787.
2017-07-25 08:00:48 +08:00
Juan Linietsky
25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Marcelo Fernandez
11dbca419c Fix fullscreen on X11 for non-resizable windows 2017-07-13 13:08:38 -03:00
geequlim
7358766ff6 IME window follow the input cursor.
Abstruct set_ime_position to OS class.
Update ime position for LineEdit and TextEdit.
2017-07-11 18:36:20 +08:00
Poommetee Ketson
2fd204c35e Refactor 'treshold' to 'threshold' 2017-07-08 22:24:56 +07:00
Marcelo Fernandez
c3563b266f Implemented borderless window functions on Linux. 2017-07-05 12:19:24 -03:00
Jia Wang
098a888ec0 Workaround for IME and echo events on Linux:
Request detectable auto-repeat (Require XKB extension) to support
    echo events and IME at the same time. Fixes #29, #7106 and #9381.
2017-06-29 19:26:06 +08:00
Juan Linietsky
e79e135841 Revert "Workaround for IME on Linux." 2017-06-25 20:09:16 -03:00
Jia Wang
41029eb1f0 Workaround for IME on Linux(fixes #29 #7106):
Workaround for supporting input method frameworks like SCIM,
    IBus, Fcitx, etc.

    The locale is set when the application starts.

    Workaround for input when the input context within the specified
    input method is not available.
2017-06-25 08:17:56 +08:00
Juan Linietsky
612ab8fcdb -Restored multithread capability to VisualServer
-Restored resource previews!
2017-06-09 00:24:18 -03:00
Andreas Haas
9bc5348961
InputEvent: Renamed "pos" property to "position"
Make the naming consistent with other classes.
2017-06-03 11:26:39 +02:00
Andreas Haas
d6333066fc
X11: Turn warning about not finding cursor theme into verbose output.
Failing to get the cursor theme should not cause any issues since we're then using the default one anyway.
So I removed the warning and made it a verbose-only print instead, as people tend to mistake it for a real error..
(pretty much like `iCCP: known incorrect sRGB profile` :P)
2017-05-29 20:41:18 +02:00
Juan Linietsky
5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Juan Linietsky
98a3296702 Removal of Image from Variant, converted to a Resource. 2017-05-17 07:37:45 -03:00
Sergey Pusnei
8589ca3903 Rename [gs]et_pos to [gs]et_position for Controls
Control set_pos -> set_position
Control set_global_pos -> set_global_position
[gs]et_mouse_pos -> [gs]et_mouse_position
[gs]et_global_mouse_pos -> [gs]et_global_mouse_position
fixes #8005
2017-04-10 08:27:34 +02:00
Rémi Verschelde
df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Juan Linietsky
ce948ed63b Revert "8145 - Mouse Position is unknown until first mouse event on X11" 2017-04-06 13:08:42 -03:00
Sergey Pusnei
c79e998d1f 8145 - Mouse Position is unknown until first mouse event on X11 & Win
- X11 update input->pos on EnterNotify
- X11 & Win call first-time events processing before main initialization
2017-03-28 19:18:40 -04:00
Andreas Haas
c0b6756875
Input: Remove usage of platform dependent event IDs.
The ID property for InputEvents is set by `SceneTree` when sending the event down the tree.
So there's no need for the platform specific code to set this value when it will later be overriden anyway...
2017-03-26 15:59:32 +02:00
Rémi Verschelde
debeee56f7 Fix typos in source code using codespell
From https://github.com/lucasdemarchi/codespell
2017-03-24 21:45:31 +01:00
Andreas Haas
fc84ccc468
X11: Don't reset mouse cursor theme.
On KDE (and possibly others) the "default" cursor theme is actually some system default, not the one you've set in the desktop setting.
This was especially annoying when using a white cursor, as Godot would then reset back to a dark one.
In my case it was also keeping the cursor from changing its shape.
2017-03-18 12:13:14 +01:00
Rémi Verschelde
5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Julian Murgia
94103c0c02 Add API to access battery power state
Done:
- X11, server (tested)
- Windows (developed, would be nice to retest)
- OSX (not tested)
Prepared (not developed):
- Android (code is here, but may not compile)
- iphone
- winrt
- bb10
- haiku
- javascript
2017-03-04 18:04:29 +01:00
Shlomi Fish
0a2c387d5c Fix some compilation warnings.
Redone the commit based on the input in
https://github.com/godotengine/godot/pull/7851 . Not all warnings were
fixed but it's a start.
2017-02-21 11:59:19 +02:00
Hein-Pieter van Braam
f70afbe129 X11: Move audio driver finalize to the start of cleanup
The audio driver cleanup needs to happen at the start of finish
otherwise a race still seems to exist with the destruction of the
audioserver. I think that destroying the X resoures before has something
to do with it.
2017-02-17 17:59:06 +01:00
Hein-Pieter van Braam
a7fcdad16d X11: Finalize audiodrivers on exit
The audiodrivers loaded by OS_X11 are not destroyed before the
audioserver is. This causes a segfault on exit.

The code is taken from os_windows.cpp which did have the cleanup code.
2017-02-17 10:41:41 +01:00
marcelofg55
474e3ac055 Fix issues with set_window_resizable on x11 2017-01-30 13:25:48 -03:00
Ilija Boshkov
1005a56e5a Added focus tracking in X11 and Windows classes, added new confined mouse mode (#7162) 2017-01-25 19:21:41 +01:00
Juan Linietsky
0aa7242624 WIP new AudioServer, with buses, effects, etc. 2017-01-21 19:01:00 -03:00
Rémi Verschelde
2a0ddc1e89 Style: Various fixes to play nice with clang-format 2017-01-16 08:49:52 +01:00
Juan Linietsky
b400c69cd4 Oops! Audio engine has vanished :D 2017-01-15 16:07:51 -03:00
Rémi Verschelde
93ab45b6b5 Style: Fix whole-line commented code
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
2017-01-14 14:52:23 +01:00
Juan Linietsky
a97551902e rename Input.get_mouse_speed() to Input.get_last_mouse_speed() 2017-01-13 19:24:28 -03:00
Andreas Haas
4a6428aaee
Rename "joypad_linux" class to "JoypadLinux"
Named this class in GodotCase, so it fits with the rest of the codebase.
2017-01-08 22:22:00 +01:00
Juan Linietsky
547a57777b renamed joystick to joypad everywhere around source code! 2017-01-08 17:06:33 -03:00
Juan Linietsky
2ab83e1abb Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
Rémi Verschelde
3f3f5a5359 Merge remote-tracking branch 'origin/gles3' into gles3-on-master
Various merge conflicts have been fixed manually and some mistakes
might have been made - time will tell :)
2017-01-02 21:52:26 +01:00
Rémi Verschelde
c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
Gustav Lund
2495e8a941 fix for crash when no ALSA or Pulse installed on linux 2016-12-12 10:47:41 +01:00
Rémi Verschelde
f18470c199 Revert "X11: Fix maximized boot splash"
This reverts commit 8d3efe2b7d.
It introduced crashes for some users when trying to capture
the XConfigureNotify event.
2016-11-23 07:53:31 +01:00
Juan Linietsky
9d635f0629 Migrated from GLES to GLAD, fixes many issues. 2016-11-22 20:51:56 -03:00
Andreas Haas
8d3efe2b7d
X11: Fix maximized boot splash
When instructing the window manager to (un)maximize a window, the resulting resolution
is recieved via an XEvent of type "ConfigureNotify".

The problem here was that these events were only handled in the `OS_X11::process_xevents()` method,
which is initially called on the first iteration of the main loop.
Because of this, the VideoMode still hadn't been updated yet when doing the boot splash setup.
2016-11-16 02:04:39 +01:00
ISylvox
b5c383fd61 vsnc --> vsync 2016-11-08 21:06:57 +07:00
Juan Linietsky
22d83bc9f6 Begining of GLES3 renderer:
-Most 2D drawing is implemented
-Missing shaders
-Missing all 3D
-Editor needs to be set on update always to be used, otherwise it does not refresh
-Large parts of editor not working
2016-10-03 21:35:16 +02:00
Andreas Haas
6fcf2b2bd8
x11: Fix event.is_action() for release of modifier keys
The bug was that the release events for these also had the modifier state set, so the event comparison
failed.

Fixes #5901
2016-09-22 12:24:44 +02:00
Andreas Haas
f59860f464
x11: Use proper sonames for loading libXrandr. 2016-08-11 17:40:59 +02:00
Rémi Verschelde
82d18f4c1c Merge pull request #5845 from hurikhan/x11_cleanup
Code cleanup in platform/x11
2016-07-22 08:35:26 +02:00
Mario Schlack
503f9ab9d9 Code cleanup in platform/x11 2016-07-21 21:11:34 +02:00
Mario Schlack
d04ada3973 Implement OS.request_attention() for X11 2016-07-21 19:40:36 +02:00
Juan Linietsky
864c0e84de line/col label was changing size with each cursor move, forcing the GUI to resize upwards and costing considerably CPU usage.
It has been changed so it won't resize the UI when modified.
This will make the code editor feel a lot smoother.
2016-07-09 14:56:08 -03:00
Juan Linietsky
7e3044981e Avoid crash if setting modifiers fails, closes #5158 2016-07-08 11:28:09 -03:00
paper-pauper
dd1ad31757 Changes X11 res_name to "Godot_Engine"
Add additional/alternative WM_CLASS; only affects the game window, avoids redundancy and allows finer control in WMs (#5265)
2016-06-25 07:15:21 +02:00
Dennis Brakhane
3d85a14404 fix memset calls
Order is "mem, val, count", not "mem, count, val"
2016-06-19 02:07:51 +02:00
Andreas Haas
eaa34f2123 x11: fix XRandr GetMonitors 2016-06-12 15:29:02 +02:00
Andreas Haas
18c941bbec x11: Implemented dpi detection
depends on XRandR.
Had to dynamically load `XRRGetMonitors` as Ubuntu 12.04 doesn't have it.
Also removed libudev from travis install list.
2016-06-09 18:54:06 +02:00
Juan Linietsky
2420e46b44 vsync support
-works on windows
-may not work on X11, if so please fix
-OSX does not seem to support disabling vsync
2016-06-05 19:14:33 -03:00
Andreas Haas
2c9b28df13 xdnd: can handle more than 3 different target types
Now dropping also works with Nemo and PCManFM(gtk)
2016-05-29 17:40:08 +02:00
Andreas Haas
ae0a59731e x11: Add support for filesystem drag & drop using xdnd 2016-05-28 21:35:42 +02:00
Ignacio Etcheverry
5907a007dc x11: Flush the X output buffer after changing mouse mode 2016-04-12 16:20:28 +02:00
Hubert Jarosz
4a4f247914
remove trailing whitespace 2016-03-09 00:00:52 +01:00
Rémi Verschelde
cefca4429c Merge pull request #3575 from Hinsbart/_net_wm_name
x11: set _net_wm_name property
2016-02-04 07:19:52 +01:00
hondres
61c1b6f60e x11: set _net_wm_name property 2016-02-04 00:39:53 +01:00
Rémi Verschelde
c0aade4ba4 Merge pull request #3493 from Hinsbart/wm_class
x11: use different strings for WM_CLASS depending on context
2016-02-03 11:30:22 +01:00
hondres
f4fa74fe28 remove pc_joystick_map.h 2016-02-01 14:28:53 +01:00
hondres
11e4c128ac x11: use different strings for WM_CLASS depending on context 2016-01-27 21:53:37 +01:00
George Marques
f4a39692b9 Change default window size for desktop
Fix #3149
2016-01-24 17:52:33 -02:00
hondres
c632c13c66 Add some joystick functions to input. Enables manipulation of mappings at runtime 2016-01-08 00:40:41 +01:00
hondres
c0e4d8fbfd fix x11 crash on exit 2016-01-05 23:35:54 +01:00
Juan Linietsky
908f75c23f having active items is pointless in input map 2016-01-03 18:52:42 -03:00
George Marques
5be9ff7b67 Update copyright to 2016 in headers 2016-01-01 11:50:53 -02:00
Juan Linietsky
586e482a98 -Fix parsing of comments in VariantParser, fixes #3175 2015-12-31 10:25:21 -03:00
hondres
541c9039c5 Check pkg-config for libudev and enable gamepad code only if found. Linux only for now 2015-12-21 22:39:03 +01:00
hondres
af633c7941 Better gamepad support 2015-12-18 06:12:53 +01:00
Juan Linietsky
cc7880fba5 -added windowed mode with -w, fixes #3020
-changed default windowed resolution to 1280x720
2015-12-12 12:06:53 -03:00
Anton Yabchinskiy
b14c90801f Disable X11 joystick functions also for OpenBSD 2015-11-20 23:36:34 +03:00
Anton Yabchinskiy
523e64d30b Include string.h for memset() on OpenBSD 2015-11-20 23:36:14 +03:00
Juan Linietsky
2769da7744 compile fixes 2015-11-19 20:24:43 -03:00
Juan Linietsky
dd09215c90 Revert "libao audio driver" 2015-11-19 20:05:26 -03:00
Juan Linietsky
43ce972ddb Merge pull request #903 from a12n/libao
libao audio driver
2015-11-19 19:31:56 -03:00
Anton Yabchinskiy
3b9868d2e4 Merge branch 'master' of github.com:okamstudio/godot 2015-11-02 20:25:01 +03:00
Saracen
e723488aa3 Moved deleting sample player in OS finalize methods to before deleting audio server to prevent crash when exiting. 2015-11-02 16:36:41 +00:00
Phobos Tro
2d2ab92680 Made the Atom net_wm_icon local 2015-10-26 01:36:27 +08:00
Phobos Tro
746ef7cbd6 Fixing memory leaks 2015-10-25 22:15:56 +08:00
Juan Linietsky
97f483af0a fixes broken 3D in editor 2015-10-17 23:05:39 -03:00
Juan Linietsky
4a8bc25f18 Merge pull request #2485 from masoudbh3/fix-x11-editor-boot-splash
Fix X11 Editor Boot Splash (Maximized Boot Splash)
2015-10-17 10:12:34 -03:00