Commit Graph

429 Commits

Author SHA1 Message Date
A Thousand Ships a0dbdcc3ab
Replace `find` with `contains/has` where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
bruvzg e5205e589f
[StatusIndicator] Add method to get indicator icon screen rect. 2024-05-02 14:39:33 +03:00
A Thousand Ships 308dbb8c63
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Rémi Verschelde 85062e37ef
Merge pull request #89588 from bruvzg/status_ind_menu_direct
[StatusIndicator] Switch API to use Texture2D instead of Image, improve handling on macOS, add method to set native popup menu directly.
2024-05-01 09:54:44 +02:00
bruvzg 059ddc41a0
[macOS export] Add support for privacy manifest configuration. 2024-04-30 23:31:56 +03:00
Rémi Verschelde 339cb0e2a2
Merge pull request #90428 from bruvzg/macos_detect_helper_exes
[macOS export] Detect embedded helper executables using MachO header.
2024-04-29 13:00:34 +02:00
Rémi Verschelde 947f5a8741
Merge pull request #91247 from AThousandShips/callable_fix
Fix unsafe uses of `Callable.is_null()`
2024-04-29 10:10:32 +02:00
Thaddeus Crews e0e8ce1fc0
SCons: Colorize warnings/errors during generation 2024-04-28 16:24:48 -05:00
A Thousand Ships 31e7ee63f2
Fix unsafe uses of `Callable.is_null()`
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
Fredia Huya-Kouadio 764de7fe31 Collapse the gdextension arguments into the `GDExtensionData` struct
This is used to reduce the number of arguments to `OS::open_dynamic_library(...)`.
2024-04-19 07:56:02 -07:00
Fredia Huya-Kouadio ede88cf59d Fix loading GDExtension dependencies on Android 2024-04-19 07:55:08 -07:00
bruvzg e667dc2d59
[macOS] Fix native file dialog with empty filter list. 2024-04-17 11:12:14 +03:00
Rémi Verschelde c951421c99
Merge pull request #90268 from RandomShaper/wtp_servers
Use WorkerThreadPool for Server threads (enhanced)
2024-04-15 10:12:00 +02:00
Rémi Verschelde e73f40e260
Merge pull request #87117 from DmitriySalnikov/rename_pdb
Add renaming of PDB files to avoid blocking them
2024-04-11 11:02:31 +02:00
Pedro J. Estébanez c28f5901c7 Polish interaction between windowing, input and rendering
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
2024-04-10 18:47:42 +02:00
Mikael Hermansson a057158d75 Revert pack trimming introduced by #82084 2024-04-10 12:00:04 +02:00
bruvzg bf558adcdd
[.NET] Disable output embedding on macOS, move it to the advanced options on other platforms. 2024-04-09 17:47:39 +03:00
bruvzg bae27340c9
[macOS export] Detect embedded helper executables using MachO header. 2024-04-09 13:19:24 +03:00
Micky 328b00774b Use `[codeblock lang=text]` more often in class ref 2024-04-08 16:17:50 +02:00
DmitriySalnikov b73e740786 Add renaming of PDB files to avoid blocking them 2024-04-05 00:14:23 +03:00
Rémi Verschelde 61b56f6019
Merge pull request #90131 from rodrigodias4/fix86495
Fix macOS menu bar & dock stop appearing after closing sub-window
2024-04-04 14:37:24 +02:00
Rodrigo Dias a4f2e5210f Fix MacOS menu bar & dock stop appearing after closing sub-window
When the progress dialog task for saving a scene ends, or when closing the "Open project" dialog, the DisplayServerMacOS::update_presentation_mode() method now restores those fullscreen functionalities with the flags NSApplicationPresentationAutoHideMenuBar and NSApplicationPresentationAutoHideDock, whereas before it would reset to NSApplicationPresentationDefault, which didn't allow that.

Fixes #86495
2024-04-01 21:57:58 +01:00
Jiali Qiu d78cb43ec2 Fix issue with moving maximized window in macOS
When opening the Godot editor and maximizing the window by double-clicking the
title bar, users are unable to drag the window with the mouse.

With this commit, `window_set_position` allows the maximized window to be moved
by dragging it. Only the fullscreen window won't be allowed to move.

Fixes #78758.
2024-04-01 17:07:24 +01:00
Rémi Verschelde 3881778ebc
Merge pull request #89953 from bruvzg/macos_menu_shortcuts
[macOS] Fix non-global native menu shortcuts.
2024-03-28 10:47:34 +01:00
bruvzg 37e0be37d8
[macOS] Fix non-global native menu shortcuts. 2024-03-27 22:26:44 +02:00
bruvzg dc01658ee9
[DisplayServer] Add separate feature flags for different native dialog types. 2024-03-26 15:18:06 +02:00
bruvzg 399899a095
[NativeMenu] Move files to the `display` subfolder. 2024-03-26 10:18:08 +02:00
Alexander Hartmann 65f68fda54 Fix `EXIT_SUCCESS` on MacOS 2024-03-24 17:08:25 +01:00
Rémi Verschelde f49efbe0e5
Merge pull request #89229 from akien-mga/main-refactor-os-exit-code
Refactor OS exit code to be `EXIT_SUCCESS` by default
2024-03-24 01:15:06 +01:00
A Thousand Ships 79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable 2024-03-20 13:47:42 +01:00
bruvzg 0587a1d217
[StatusIndicator] Switch API to use Texture2D instead of Image, improve handling on macOS, add method to set native popup menu directly. 2024-03-20 11:56:07 +02:00
bruvzg 3459aaa9d1 Fix NativeMenu layout direction on macOS, add extra check for Windows menu. 2024-03-15 09:48:54 +02:00
Rémi Verschelde 4ca6cd054f
Merge pull request #89273 from bruvzg/win_native_menu
[NativeMenu] Implement native popup menu support on Windows.
2024-03-14 22:34:42 +01:00
bruvzg ac7583e449
[NativeMenu] Implement native popup menu support on Windows. 2024-03-13 10:51:38 +02:00
Thaddeus Crews 3b3e2374c9
clang-tidy: Enforce `modernize-use-nullptr` 2024-03-12 10:59:53 -05:00
Thaddeus Crews 5a6e3cbcb0
SCons: Remove `run_in_subprocess` dependency 2024-03-11 13:20:09 -05:00
Rémi Verschelde 0475011c66
Merge pull request #82084 from ogapo/pr/pck-cache-merge
Merge `uid_cache.bin` and `global_script_class_cache.cfg` after mounting PCKs
2024-03-11 14:01:16 +01:00
Thaddeus Crews 8116d70d4b
SCons: Convert remaining `run_in_subprocess` to `env.Run` 2024-03-10 14:01:23 -05:00
Rémi Verschelde 0ace0a1292
Merge pull request #89333 from Repiteo/enforce-eol-python
Enforce `\n` eol for Python writes
2024-03-09 22:20:23 +01:00
Thaddeus Crews d9fa40f2df
Enforce `\n` eol for Python writes
• Ensure utf-8 encoding if previously unspecified
2024-03-09 14:29:24 -06:00
pohy f65f480617 Fix MoltenVK detection 2024-03-09 21:05:51 +01:00
Rémi Verschelde 023dcd44c1
Refactor OS exit code to be `EXIT_SUCCESS` by default
- `Main::setup` early exits (failure or `--help`/`--version`) now
  consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms,
  instead of 255 on some and a Godot Error code on others.
- `Main::start` now returns the exit code, simplifying the handling of early
  failures.
- `Main::iteration` needs to explicit set the exit code in OS if it errors
  out.
- Web and iOS now properly return `OS::get_exit_code()` instead of 0.
2024-03-08 23:31:24 +01:00
David Nikdel 5e6adb4a2d Merge uid_cache.bin and global_script_class_cache.cfg after mounting PCKs
fixes godotengine#82061
fixes godotengine#61556

Also, distinguish between main pack and DLC packs.
It's desirable to downloaded content to be as small as possible. This change avoids bloating non-main pack files with new versions of resources that are all read on startup and never used again. They have no effect if loaded after startup.
- project.godot/project.binary file
- extension_list.cfg
- app icon and boot_splash
- .ico and .icns files (these can still be opted in for DLC by listing them explicitly in the include filter)
2024-03-06 12:14:21 -05:00
bruvzg c65a667924
Move `global_menu_*` methods to a separate `NativeMenu` class. 2024-03-04 23:41:41 +02:00
Rémi Verschelde b0b9c66a7f
Merge pull request #88987 from bruvzg/macos_12_depr_warn
[macOS] Fix some deprecation warnings.
2024-02-29 13:55:08 +01:00
Rémi Verschelde 90ed9a5de0
Merge pull request #88978 from bruvzg/macos_bg_cont
[macOS] Enable input from controllers in the background.
2024-02-29 13:54:57 +01:00
Rémi Verschelde 6d9a529c87
Merge pull request #88970 from KoBeWi/ImageCursor2D
Improve `cursor_set_custom_image()` method
2024-02-29 13:54:53 +01:00
bruvzg e15a2ff1db
[macOS] Fix some deprecation warnings. 2024-02-28 23:38:29 +02:00
kobewi 3aeb4a5542 Improve cursor_set_custom_image() method 2024-02-28 20:32:25 +01:00
bruvzg 77e92dda0f
[macOS] Enable input from controllers in the background. 2024-02-28 21:25:47 +02:00
Rémi Verschelde 3a08c646ee
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0 2024-02-28 14:25:35 +01:00
bruvzg a0084803b4
[macOS/Windows] Fix application indicator destruction. 2024-02-27 22:19:47 +02:00
bruvzg d2e0544e0a
[macOS] Add null checks for `NSString stringWithUTF8String`. 2024-02-23 08:20:02 +02:00
Jezer Mejía 07313a08f4 Migrate macos controller API to GameController.h
This should fix a lot of issues regarding to old controller API, such as vibration

Haptics (vibrations) are only available in macOS 11+, so haptics are now
processed in macOS 11+ only. Also, this doesn't interfere with
controller's input as controller support is available in macOS 10.9+.

Added a Note for macOS regarding vibration support
2024-02-20 08:13:05 -06:00
Rémi Verschelde d0f4f58a8c
Merge pull request #88519 from bruvzg/mac_conf_mode
[macOS] Ignore window decorations in confined mouse mode to match other platforms.
2024-02-19 00:09:15 +01:00
Rémi Verschelde 033821c595
Merge pull request #88245 from shana/simplify-mono-support-detection
C#: Let platforms signal if they support the mono module or not
2024-02-19 00:08:07 +01:00
bruvzg 606a475bb5
[macOS] Ignore window decorations in confined mouse mode to match other platforms. 2024-02-18 23:53:45 +02:00
Rémi Verschelde c4869cf15a
Merge pull request #88274 from bruvzg/macos_hdr_picker
[macOS] Fix color picker on HDR screens.
2024-02-15 17:35:48 +01:00
Rémi Verschelde 3ed81a8f70
Merge pull request #88334 from passivestar/ctrl-tab-mac
[macOS] Fix `Ctrl+Tab` and `Ctrl+Shift+Tab` not working
2024-02-15 15:45:15 +01:00
Rémi Verschelde ef5d6ccfb7
Merge pull request #86966 from Muller-Castro/value2ref-core
Add const lvalue ref to `core/*` container parameters
2024-02-15 15:44:43 +01:00
passivestar 757a691b5e Fix `Ctrl+Tab` and `Ctrl+Shift+Tab` on macOS 2024-02-15 02:49:31 +04:00
Thaddeus Crews 633dcf6dfd
SCons: "Environment" to "SConsEnvironment" 2024-02-14 09:26:47 -06:00
Muller-Castro a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
Rémi Verschelde b6dee8850b
Merge pull request #87384 from bruvzg/sys_base_color
Add method to get "base" system UI color and system theme change callback.
2024-02-13 23:43:21 +01:00
Andreia Gaita 21e524a798 C#: Let platforms signal if they support it or not
Instead of hardcoding platform names that support C#, let platforms
set a flag indicating if they support it. All public platforms
except web already support it, and it's a pain to maintain a patch
for this list just to add additional names of proprietary console
platforms.

This makes adding new platforms or variants or existing platforms
much easier, as the platform can signal what it supports/doesn't
support directly, and we can avoid harcoding platform names.
2024-02-13 22:48:43 +01:00
bruvzg ee53ae28df
Add method to get "base" system UI color (macOS/Windows) and system theme change callback. 2024-02-13 18:38:53 +02:00
bruvzg deffe6a3be
[macOS] Add support for native help menu search callbacks, integrate editor help. 2024-02-13 18:37:37 +02:00
Rémi Verschelde b50001ecfe
Merge pull request #87999 from bruvzg/metal_layer
[macOS / iOS] Switch Vulkan init to `VK_EXT_metal_surface` extension.
2024-02-13 17:24:15 +01:00
Rémi Verschelde b36480684c
Merge pull request #87954 from bruvzg/mac_fd_no_type
[macOS] Do not show file type popup in the native file dialog if there's only one option, improve `*.*` filter handling.
2024-02-13 17:24:11 +01:00
Rémi Verschelde ae603f2dc6
Merge pull request #87908 from bruvzg/mac_gen_plist
[macOS] Generate min. `Info.plist` for frameworks if it's missing. Validate framework bundle ID characters.
2024-02-13 17:24:07 +01:00
Rémi Verschelde 747977807a
Merge pull request #87657 from bruvzg/app_dist
[macOS export] Allow unpacked .app export in "Distribution" export mode.
2024-02-13 17:23:59 +01:00
Rémi Verschelde 937fa7b04a
Merge pull request #87465 from bruvzg/macos_demini_vis_state
[macOS] Update window visible state on deminiaturize.
2024-02-13 17:23:51 +01:00
Rémi Verschelde bd57d2de18
Merge pull request #87277 from bruvzg/macos_swipe
[macOS] Handle Trackpad / Magic Mouse swipe events and simulate XBUTTON1 / XBUTTON2 buttons.
2024-02-13 17:23:46 +01:00
Rémi Verschelde 164ec4929f
Merge pull request #86934 from bruvzg/mac_icon_fix
[macOS export] Fix RLE icon generation.
2024-02-13 17:23:25 +01:00
Rémi Verschelde de77f0ac7f
Merge pull request #86255 from bruvzg/_bundle_build
[iOS/macOS] Add option to automatically build (and sign / archive) bundles.
2024-02-13 17:23:10 +01:00
bruvzg f458943455
[macOS / iOS] Switch Vulkan init to VK_EXT_metal_surface extension. 2024-02-13 16:57:02 +02:00
bruvzg 94238d0462
[iOS/macOS] Add option to automatically build (and sign / archive) bundles. 2024-02-13 16:36:41 +02:00
bruvzg 8da36031e4
Implement support for application status indicators (tray icons). 2024-02-13 15:59:35 +02:00
bruvzg d9b7075ba6
[macOS] Fix color picker on HDR screens. 2024-02-13 11:24:43 +02:00
Dario 73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
Rémi Verschelde 74b03edf1e
Merge pull request #82800 from Sauermann/fix-screen-mousemotion
Add screen-related attributes to mouse input events
2024-02-09 18:08:58 +01:00
bruvzg cc313a1c1c
[macOS] Allow `open_shell` to handle filenames without `file://`. 2024-02-09 08:27:55 +02:00
Rémi Verschelde 08eaeff640
Merge pull request #88050 from bruvzg/sec_state
[macOS] Enabled secure restorable state.
2024-02-07 11:07:09 +01:00
Rémi Verschelde bf8814ed10
Merge pull request #87842 from bruvzg/sigtrap
[macOS] Add SIGTRAP to the crash handler.
2024-02-07 10:59:42 +01:00
bruvzg 84380a94f7
[macOS] Enabled secure restorable state. 2024-02-07 10:59:35 +02:00
Markus Sauermann 2235a1cbd0 Add screen-related attributes to mouse input events 2024-02-05 23:30:15 +01:00
bruvzg 70e328385c
[macOS] Check Vulkan SDK version when looking for MoltenVK libs. 2024-02-04 23:09:52 +02:00
bruvzg b5dfeca498
[macOS] Do not show file type popup in the native file dialog if there's only one option, improve `*.*` filter handling. 2024-02-04 21:30:59 +02:00
bruvzg 112f489449
[macOS] Fix changing main menu item names. 2024-02-03 21:12:48 +02:00
bruvzg 1c1036567a
[macOS] Generate min. Info.plist for frameworks if it's missing. Validate framework bundle ID characters. 2024-02-03 19:48:21 +02:00
bruvzg b990cb95a9
[macOS] Add SIGTRAP to the crash handler. 2024-02-01 23:30:33 +02:00
Stuart Carnie 8f6d4eaa31
use autorelease pools around main loop
Reduces memory usage considerably
2024-02-02 07:06:53 +11:00
Rémi Verschelde f220d46cdc
Merge pull request #80231 from romlok/input-key-location
Support detecting and mapping ctrl/alt/shift/meta by their left/right physical location
2024-01-29 13:15:42 +01:00
bruvzg 34723b0d3a
[macOS export] Allow unpacked .app export in "Distribution" export mode. 2024-01-28 00:02:20 +02:00
Mel Collins 8406e60522 Add InputEventKey.location to tell left from right
This adds a new enum `KeyLocation` and associated property
`InputEventKey.location`, which indicates the left/right location of key
events which may come from one of two physical keys, eg. Shift, Ctrl.

It also adds simulation of missing Shift KEYUP events for Windows.
When multiple Shifts are held down at the same time, Windows natively
only sends a KEYUP for the last one to be released.
2024-01-26 14:42:28 +01:00
Yuri Sizov 672b034076 Merge pull request #87303 from bruvzg/fd_options_no_editor
[Native File Dialog] Add support for adding custom options to the dialogs (w/o editor changes).
2024-01-25 16:26:58 +01:00
bruvzg a8f521bcad
[Native File Dialog] Add support for adding custom options to the dialogs.
Add support for adding custom options (checkboxes and optionboxes) to the dialogs (both native and built-in).
2024-01-24 15:00:31 +02:00
bruvzg ce47551822
[macOS] Fix missing modifier + space key down events. 2024-01-23 09:03:47 +02:00
bruvzg 7e5bce7090
[macOS] Update window visible state on deminiaturize. 2024-01-22 11:35:37 +02:00
Rémi Verschelde 4db2a6801f
Merge pull request #85206 from bruvzg/mac_clang_version_check_update
[macOS] Check Apple specific version instead of generic clang version.
2024-01-18 16:33:39 +01:00