Commit graph

4866 commits

Author SHA1 Message Date
Rémi Verschelde
a5a23678c4
Merge pull request #78029 from bruvzg/macos_fix_popup_ime_focus
[macOS] Fix IME focus in popup windows.
2023-06-09 11:08:06 +02:00
Rémi Verschelde
759309ba18
Merge pull request #77977 from zaevi/fix_windows_popup_ime
Fix IME doesn't work under Popup on Windows.
2023-06-09 11:06:02 +02:00
bruvzg
fe2d9e5bdf
[macOS] Fix IME focus in popup windows. 2023-06-09 08:03:13 +03:00
Rémi Verschelde
9e4315bb50
Style: Harmonize header includes in platform ports
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module should be included with relative
paths (relative to the root folder of the modular component, e.g.
`platform/linuxbsd/`), in their own section before Godot's "core" includes.

The `api` and `export` subfolders also need to be handled as self-contained
(and thus use relative paths for their "local" includes) as they are all
compiled for each editor platform, without necessarily having the api/export
matching platform folder in the include path.
E.g. the Linux editor build will compile `platform/android/{api,export}/*.cpp`
and those need to use relative includes for it to work.
2023-06-08 15:19:19 +02:00
Fredia Huya-Kouadio
b2cd6a8a95 Add setting to control the window used to run the project for the Android editor
The follow options were added to the (new) `run/window_placement/android_window` editor setting:

- `Same as Editor`: run the project in the same window as the editor
- `Side-by-side with Editor`: run the project in an adjacent window to the editor
- `Auto`: choose how to run the project based on the device screen size
2023-06-07 18:32:52 -07:00
Zae
1b149b7440 Fix IME doesn't work under Popup on Windows. 2023-06-08 02:40:36 +08:00
Rémi Verschelde
2ae5a0704a
X11: Fix vformat ambiguous int types for GCC 10 (again) 2023-06-07 14:57:51 +02:00
MJacred
2c5e2196bd Replace get_rendering_device() call to prevent crashes on OpenGL.
And make OpenGL video adapter info align with Vulkan.
2023-06-06 23:29:36 +02:00
Rémi Verschelde
0010b34a37
Merge pull request #75099 from mxnemu/add-default-x11-error-handler
[Linux/X11] Add a default error handler for X11 to avoid crashes.
2023-06-05 18:04:49 +02:00
nee
b13c82e964 [Linux/X11] Add a default error handler for X11 to avoid crashes.
The default behaviour for X11 is to crash even on non-fatal errors
when there is no error handler set. This change allows the window to
stay open and may enable users to save their work when things go
wrong.

This acts as a workaround for #65425 and #68471
2023-06-05 17:28:21 +02:00
Michael Alexsander
71d8882a02
Enhance icon fallback and their docs for exporters 2023-06-03 19:28:50 -03:00
Rémi Verschelde
8623572b1f
Merge pull request #75666 from ronyeh/main.cpp-2
Rename `iconpath` => `icon_path` & `hasicon` => `has_icon`.
2023-06-02 17:26:18 +02:00
jpcerrone
c819da7fdb Fix minimize button missing in non-resizable projects.
Fixes https://github.com/godotengine/godot/issues/77603.
On Windows, disabling the 'resizable' flag on the project
settings would also remove the minimize button from the window.
2023-06-02 10:31:50 -03:00
bruvzg
e15f37945b
[Linux/TTS] Cache TTS voice list. 2023-06-02 14:00:52 +03:00
hlutor
a932c5e81d Added override for window_get_vsync_mode in display_server_web.cpp 2023-05-31 18:23:06 -06:00
Rémi Verschelde
574f917442
Merge pull request #77686 from m4gr3d/fix_editor_audio_stream_microphone_crash_main
Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone
2023-06-01 00:40:49 +02:00
Fredia Huya-Kouadio
8ca14183f0 Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone
Fixes https://github.com/godotengine/godot/issues/73801
2023-05-31 00:58:27 -07:00
Zae
14908140ea Fix HTTPClient.get_response_body_length() incorrect on Web 2023-05-30 15:22:51 +08:00
Yuri Sizov
c670c4334a
Merge pull request #65902 from MJacred/editor/copysysteminfo
Add an editor option to copy system info to clipboard
2023-05-27 20:11:54 +02:00
MJacred
9e5bf3d589 Copy system info to clipboard + Update bug_report.yml
plus minor static-related fixes
* linuxbsd: get_systemd_os_release_info_value() -> static breaks usage if used multiple times
* windows/linuxbsd: get_video_adapter_driver_info() writes info into static
* linuxbsd: get_distribution_name() + get_version() -> write bsd fallback into static variable
* windows/uwp/android: remove unnecessary use of static
2023-05-27 18:21:23 +02:00
Fredia Huya-Kouadio
01ee00f710 Improve touchpad and mouse support for the Android editor
- Fix issues with using a touchpad to click, drag, interact with the navigation controls, etc..
- Fix issues with panning with 2+ fingers
- Fix issues with using double-tap to magnify on the spatial editor
2023-05-25 20:27:04 -07:00
Rémi Verschelde
a67d37f7cf
Merge pull request #77458 from Riteo/late-night-preprocessing
Build `JoypadLinux` sandbox detection method only with udev
2023-05-25 09:26:33 +02:00
Riteo
51dfdfab96 Build JoypadLinux sandbox detection method only with udev
Fixes an `unused-function` warning when building with `udev=no`.
2023-05-25 04:47:43 +02:00
Fredia Huya-Kouadio
a041f96779 Update the format for the app version code and name 2023-05-24 14:36:56 -07:00
Rémi Verschelde
094e88416a
Merge pull request #74569 from m4gr3d/setup_play_store_builds_main
Update the gradle build tasks to generate play store builds
2023-05-24 10:53:17 +02:00
Rémi Verschelde
774f4a7261
Merge pull request #73450 from Calinou/windows-vulkan-disable-amd-switchable-graphics
Disable AMD switchable graphics on Windows with Vulkan to fix driver issue
2023-05-24 08:44:46 +02:00
Fredia Huya-Kouadio
831b4a5366 Improve startup benchmarking
Move the benchmarking measuring methods from `Engine` to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
2023-05-23 13:22:35 -07:00
Rémi Verschelde
9dc286967f
X11: Fix vformat ambiguous int types for GCC 10
The build would fail with GCC 10 from our Linux SDK used for official builds.
2023-05-23 11:27:28 +02:00
Rémi Verschelde
7ed55c8833
Merge pull request #77258 from RedworkDE/natvis-pdb-embeded
Embed natvis debug views in PDB
2023-05-22 13:49:15 +02:00
Hiroki Taira
9dc84e3581
Add support for DPAD Center key of Android TV remote controller 2023-05-22 13:31:22 +02:00
RedworkDE
efa892b52a Embed natvis debug views in PDB
This means the debugger can load them automatically.
2023-05-20 00:08:35 +02:00
bruvzg
5b9984b5a2
Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-18 20:16:03 +03:00
Max Hilbrunner
a521b85976 Small docs syntax fixes 2023-05-18 14:20:53 +02:00
bitsawer
68da61e74c Fix for Clang dev_mode Windows build 2023-05-17 19:35:37 +03:00
Rémi Verschelde
b0f49266f9
Merge pull request #76719 from m4gr3d/add_input_event_cancelled_state_main
Augment the `InputEvent` class with a `CANCELED` state
2023-05-17 11:25:21 +02:00
Rémi Verschelde
265c70a369
Merge pull request #75142 from bruvzg/scr
[DisplayServer] Implement screen_get_image method for LinuxBSD/X11, macOS and Windows.
2023-05-16 10:48:16 +02:00
Fredia Huya-Kouadio
250749fa79 Augment the InputEvent class with a CANCELED state
The `InputEvent` class currently supports the `pressed` and `released` states, which given the binary nature, is represented by a `bool` field.
This commit introduced the `CANCELED` state, which signals that an ongoing input event has been canceled.
To represent all the states, the `InputEventState` enum is added and the `InputEvent` logic is refactored accordingly.
2023-05-15 11:48:25 -07:00
Fabio Alessandrelli
58c6f88802 [TLS/Windows] Skip disallowed certs in the trusted CA list.
Turns out the list of trusted root certificates contains disallowed
certificates (i.e. certificates which are no longer trusted or have been
revoked).

We need to check for the property `CERT_DISALLOWED_FILETIME_PROP_ID` to
check if and when the certificates should be distrusted.
2023-05-14 14:44:14 +02:00
Rémi Verschelde
788cb74cc6
Linux: Don't use udev for joypad hotloading when running in a sandbox
udev doesn't work in sandboxes, notably the new Steam container runtime
as found notably on the Steam Deck, and in Flatpak/Snap packages.

Like SDL does, when we detect such a containerized environment, we fall
back to parsing `/dev/input` directly.
See smcv's comments in #76879 for details.

Fixes #76879.
2023-05-12 11:30:16 +02:00
Rémi Verschelde
258fabdbb3
Merge pull request #76836 from Faless/tls/system_certs
[TLS] Add support for platform-specific CA bundles.
2023-05-12 11:17:31 +02:00
Rémi Verschelde
1c07717d3e
Merge pull request #76974 from dsnopek/linuxbsd-feature-tags
Fix 'linux' and specific BSD feature tags
2023-05-12 10:06:08 +02:00
Rémi Verschelde
03053eaf19
Merge pull request #76957 from Riteo/dbus-check
Check DBus loading status before attempting to detect its version
2023-05-12 10:04:33 +02:00
Fabio Alessandrelli
6fd9982358 [TLS] Add support for platform-specific CA bundles.
Adds a new OS::get_system_ca_certs method which can be implemented by
platforms to retrieve the list of trusted CA certificates using OS
specific APIs.

The function should return the certificates in PEM format, and is
currently implemented for Windows/macOS/LinuxBSD(*)/Android.

mbedTLS will fall back to bundled certificates when the OS returns no
certificates.

(*) LinuxBSD does not have a standardized certificates store location.
    The current implementation will test for common locations and may
    return an empty string on some distributions (falling back to the
    bundled certificates).
2023-05-12 09:58:23 +02:00
David Snopek
87fcee2d7f Fix 'linux' and specific BSD feature tags 2023-05-11 16:58:52 -05:00
Riteo
a7542070ae Check DBus loading status before attempting to detect its version
Fixes two related segfaults caused by running the DBus version check
unconditionally and potentially calling null function pointers.

This was clearly an oversight as all the other wrappers have proper
loading status checks.
2023-05-11 19:29:10 +02:00
Ninni Pipping
71ee65dc57 Enable shadow warnings and fix raised errors 2023-05-11 16:00:59 +02:00
Rémi Verschelde
0c7c35bdc6
Merge pull request #76924 from stolk/fixuninit
x11: Do not use uninitialized timestamps.
2023-05-11 11:48:23 +02:00
Rémi Verschelde
a1db628eb3
Merge pull request #76856 from HolonProduction/macos-specific
Don't expose macOS and iOS specific display servers.
2023-05-11 11:47:58 +02:00
HolonProduction
ddcb2d157d Don't expose mac specific display server. 2023-05-11 11:02:08 +02:00
Bram Stolk
7a2e350d2b x11: Do not use uninitialized timestamps.
Fixes #76922
2023-05-10 11:27:14 -07:00
Rémi Verschelde
74e5ad5c60
Merge pull request #76165 from and-rad/safe-credentials
Store sensitive export options in dedicated credentials file
2023-05-10 12:47:07 +02:00
Andreas Raddau
fab160ce70 Store sensitive export options in dedicated credentials file 2023-05-10 11:40:17 +02:00
Ninni Pipping
6bccdec7a1 Make documentation sorting use natural order 2023-05-09 17:47:52 +02:00
Rémi Verschelde
e56427b4f5
Merge pull request #76868 from chfoo/issue-72728
Ensure WindowData minimized/maximized are mutually exclusive
2023-05-09 17:44:53 +02:00
Rémi Verschelde
d550fdd7a4
Merge pull request #76791 from OmarShehata/fix-android-double-tap
Fix double tap & drag on Android
2023-05-09 10:45:59 +02:00
Omar Shehata
0c94750642 Fix double tap & drag on Android 2023-05-08 21:15:37 -04:00
Christopher Foo
e4d052e284
Ensure WindowData minimized/maximized are mutually exclusive
The window manager can break the assumption that
fullscreen/maximized/minimized values are mutually exclusive.
2023-05-08 20:23:45 -04:00
Rémi Verschelde
491a437df5
Merge pull request #76540 from reduz/redo-remote-filesystem
Redo how the remote filesystem works
2023-05-08 13:52:51 +02:00
Juan Linietsky
273a6eeb66 Redo how the remote filesystem works
Instead of reading files over the network, the new version uses a local file cache and only updates files when it changes.

The original remote filesystem was created 14 years ago, when ethernet was faster than hard drives or even flash. Also, mobile devices have a very small amount of storage.
Nowadays, this is no longer the case so the approach is changed to using a persistent cache in the target device.

Co-authored-by: m4gr3d
2023-05-08 11:57:54 +02:00
Davi
65236fe2d5 Fix building the Windows x86_32 target
In x86_32, `ULONG_PTR` and `SIZE_T` are defined as `unsigned long`, which is not a type supported by Variant without the `NEED_LONG_INT` define.
2023-05-07 11:01:20 -03:00
UltraBIF
8106d33d0f Fixed various typos across the docs 2023-05-02 18:24:32 -04:00
shendo
92ade92fce [Android] Fix dynamic Variant params stack constructions in JNI callbacks
Emitting signals with params from Android plugins could crash due to
object assignment with uninitialised mem.  Instead, use 'memnew_placement'
to construct into stack addresses.  Make similar JNI callbacks consistent.

Fixes #75754.
2023-05-01 16:31:23 +10:00
Fredia Huya-Kouadio
0d569bea5d Update the gradle build tasks to generate play store builds.
Configure the gradle builds to sign and build the release version of the Godot Android Editor
2023-04-27 22:08:55 -07:00
Rémi Verschelde
390aed9f11
Merge pull request #76510 from bruvzg/ios_conv_lib_load
[iOS] Fix loading of GDExtension dylibs auto converted to framework.
2023-04-27 23:56:36 +02:00
Samuele Panzeri
4aaa2e6477 Fix wait for thread not started 2023-04-27 20:28:22 +02:00
bruvzg
ad4d565ee7
[iOS] Fix loading of GDExtension dylibs auto converted to framework. 2023-04-27 19:04:12 +03:00
Rémi Verschelde
e1075e9c7c
Fix various typos with codespell
Also includes the grammar fix from #76206.

Co-authored-by: Peter Anderson <BWPanda@users.noreply.github.com>
2023-04-26 13:57:09 +02:00
Rémi Verschelde
8f7b09916d
Merge pull request #76026 from YuriSizov/editor-running-up-that-gui
Extract editor run toolbar into its own component
2023-04-26 12:15:29 +02:00
Rémi Verschelde
fdb058f4df
Merge pull request #76464 from m4gr3d/fix_gl_window_resize_main
Fix issue with resizing the display on Android when using the compatibility renderer
2023-04-26 11:36:06 +02:00
Rémi Verschelde
b58873b98a
Merge pull request #69833 from Eoin-ONeill-Yokai/audio_invalid_mixrate
Fix crash caused by invalid mix_rate assignment due to bogus project settings.
2023-04-26 11:35:37 +02:00
Fredia Huya-Kouadio
b438b4a490 Fix issue with resizing the display on Android when using the compatibility renderer. 2023-04-26 00:43:13 -07:00
Eoin O'Neill
5a08091168 Fix crash caused by invalid mix_rate assignment due to bogus
project settings.

We'll default to a sensible value in the case that a user has
somehow managed to modify the configuration file incorrectly.

Closes 69819
2023-04-25 23:52:50 -07:00
Rémi Verschelde
5e383f3e3d
Merge pull request #76428 from bruvzg/finder_open
[macOS] Implement OS::shell_show_in_file_manager()
2023-04-25 14:44:13 +02:00
Rémi Verschelde
92e5f4f73a
Merge pull request #76037 from theromis/master
iOS splash screen rotation fix
2023-04-25 14:43:53 +02:00
Rémi Verschelde
53191928e5
Merge pull request #76345 from reduz/fix-thread-ids
Fix thread IDs.
2023-04-25 13:20:46 +02:00
bruvzg
a97225c753
[macOS] Implement OS::shell_show_in_file_manager() 2023-04-25 11:48:41 +03:00
Rémi Verschelde
76d33d187f
Merge pull request #69698 from Daylily-Zeleen/daylily-zeleen/show_in_explorer
Implement and expose OS::shell_show_in_file_manager()
2023-04-25 09:57:27 +02:00
Daylily-Zeleen
b12ced0a26 Implement and expose OS::shell_show_in_file_manager() 2023-04-25 11:29:32 +08:00
Rémi Verschelde
60a335b24b
Merge pull request #76394 from bruvzg/macos_1013
[macOS] Bump min. version to 10.13, and remove deprecated code.
2023-04-24 16:48:25 +02:00
Juan Linietsky
a37c30dfc9 Fix thread IDs.
On Linux, thread IDs were not properly assigned with the current approach.
The line:
`std::thread new_thread(&Thread::callback, _thread_id_hash(thread.get_id()), p_settings, p_callback, p_user);`
does not work because the thread ID is not assigned until the thread starts.

This PR changes the behavior to use manually generated thread IDs. Additionally, if a thread is (or may have been created) outside Godot, the method `Thread::attach_external_thread` was added.
2023-04-24 15:13:58 +02:00
bruvzg
628f3b2f79
[OS] Implement and expose to scripting APIs get_memory_info method instead of old get_free_static_memory. 2023-04-24 14:08:55 +03:00
bruvzg
fd3e7e25e8
[macOS] Bump min. version to 10.13, and remove deprecated code. 2023-04-24 10:52:50 +03:00
Rémi Verschelde
220d44eff4
Merge pull request #76325 from m4gr3d/downgrade_agp_main
Downgrade android gradle plugin to version 7.2.1.
2023-04-22 13:19:57 +02:00
Fredia Huya-Kouadio
4507d3a38c Downgrade android gradle plugin to version 7.2.1.
Version 7.3.0 changes the build layout which causes updates to the generated shared libraries to not be picked up.
2023-04-21 14:34:07 -07:00
Hugo Locurcio
303bf247de
Add support for VRAM-compressed custom mouse cursor images
No memory is actually saved when using this, so lossless modes are
still recommended as they look better and load faster.
2023-04-21 18:01:47 +02:00
bruvzg
a5128e71bb
[Export docs] Move docs to platform folders. 2023-04-20 11:02:12 +03:00
Yuri Sizov
8a74d8438f Extract editor run toolbar into its own component
- Simplify and update its logic.
- Simplify EditorScript.
- Improve EditorNode and other relevant includes.
- Fix scene-based path in the movie writer when
reloading a scene.
2023-04-19 17:12:28 +02:00
Rémi Verschelde
989fa49e71
Merge pull request #75219 from bruvzg/get_focus_screen
Add project manager / editor initial screen settings, implement `get_keyboard_focus_screen` method.
2023-04-19 10:13:44 +02:00
bruvzg
520a8d8ed2
Add project manager / editor initial screen settings, implement DisplayServer.get_keyboard_focus_screen method. 2023-04-19 08:54:53 +03:00
bruvzg
0088981c40
[Export] Add readable descriptions and validation warnings to the export options. 2023-04-19 08:35:59 +03:00
Rémi Verschelde
c2edf14faf
Merge pull request #75881 from bruvzg/win_coinit
[Windows] Cleanup COM library initialization/uninitialization.
2023-04-18 23:40:06 +02:00
Rémi Verschelde
c4dba9a5ef
Merge pull request #75880 from bruvzg/win_tts_queue_fix
[Windows TTS] Fix queuing utterances in rapid succession.
2023-04-18 23:39:42 +02:00
Rémi Verschelde
efa01d36b6
Merge pull request #75383 from bruvzg/dll_deps_detect
[Windows] Detect missing DLL dependencies and list them in the open_dynamic_library error message.
2023-04-18 23:39:16 +02:00
Rémi Verschelde
63d17df83e
Merge pull request #74978 from bruvzg/linux_version_check
[Linux/BSD] Add dynamically loaded library version checks.
2023-04-18 23:38:51 +02:00
Danil Alexeev
36bedd341a
Fix misuses of error macros 2023-04-18 10:20:48 +03:00
Yuri Sizov
f5f796b0b7
Merge pull request #76040 from MightiestGoat/fix-sliding-window-linux-via-tracking-parent
Fix the sliding window problem in linux occur due to reparenting of the window due to decoration.
2023-04-14 13:11:36 +02:00
mightygoat
932afc3bf5 Fix the sliding window problem in linux occur due to reparenting of the window during the decoration via tracking the parent of the window 2023-04-14 00:45:34 +05:30
Roman Vasilyev
8fcca194a1 ios splash screen rotation fix 2023-04-13 11:32:52 -07:00
Jason Knight
f8699d93f6 Fix potential null in android text entry system. 2023-04-12 09:18:11 -06:00
kobewi
a3799208c0 Rename console script to wrapper 2023-04-12 15:14:51 +02:00