Commit Graph

2986 Commits

Author SHA1 Message Date
Rémi Verschelde
ec9302cecc
Merge pull request #40927 from 27thLiz/dinput-id
DirectInput: Use correct joypad id
2020-08-01 10:13:15 +02:00
Andreas Haas
802a0316c5
DirectInput: use correct joypad id
Previously `joypad_count` was used as the index into the d_joypads array when initializing a new gamepad.
This caused the accidental override of an already connected device when a gamepad with a lower id was disconnected and connected again.

fixes #17566
2020-07-31 20:16:51 +02:00
opl-
a31b164071 Fix losing X11 window normal size hint properties
This was caused by `XSetWMNormalHints` being called multiple times, each time with different values. Calling the method replaces the old data completely, resulting in some of the settings being lost.

Since the method was called 3 times before the window was mapped, this resulted in the position hint being lost and the window always getting opened at a position determined by the WM.
2020-07-31 17:32:46 +02:00
Rémi Verschelde
1cee89467b
Merge pull request #40591 from madmiraal/fix-24526
Update Linux gamepad detection to match SDL.
2020-07-31 13:02:35 +02:00
Rémi Verschelde
35ff38b3d4
Merge pull request #40761 from naithar/feature/ios-safe_area
[iOS] Safe area reimplementation
2020-07-30 00:43:03 +02:00
PouleyKetchoupp
cac7eb3a64 Move PopupWindow logic to GodotEditText on Android 2020-07-28 21:19:17 +02:00
Aman Jain
e906ac4d3b refactor apk signing into it's own method 2020-07-27 14:24:57 -04:00
Sergey Minakov
2e705fd620 iOS: safe area implementation 2020-07-27 17:58:57 +03:00
Rémi Verschelde
6e577a5b80
Merge pull request #40755 from Faless/js/fix_and_cancel_swap
Cancel/OK swap on HTML5 platform, small fixes.
2020-07-27 14:32:48 +02:00
Fabio Alessandrelli
0b286a287c Implement HTML5 cancel/ok button swap on Windows.
Platform is detected on init via the `navigator.platform` string.
2020-07-27 14:17:10 +02:00
Fabio Alessandrelli
3e96ba220e Correctly include <stdlib.h> in javascript main.
Already fixed in 3.2, this header is needed since it's where setenv
is declared and we should not assume it to be already included.
2020-07-27 14:17:10 +02:00
Fabio Alessandrelli
757af6a69f Properly set HTML5 DisplayServer init error value.
Checked in main.cpp, would cause the engine to not load.
2020-07-27 14:17:10 +02:00
Rémi Verschelde
bd9fc75768
Merge pull request #40706 from akien-mga/style-fix-file_format-macos
Fix code format scripts compat with non-GNU Unices
2020-07-27 13:27:56 +02:00
Rémi Verschelde
c71e189efd Style: Fix code format scripts compat with non-GNU Unices
It's too hard to get compatibility between GNU and BSD sed,
so let's just use perl oneliners.

And improve it to also remove trailing tabs, not just spaces.
2020-07-27 13:11:44 +02:00
Rémi Verschelde
6de86946ea
Merge pull request #40671 from nekomatata/virtual-keyboard-height-fix
Fix virtual keyboard height regression
2020-07-27 08:57:19 +02:00
bruvzg
a05776e20d
[macOS] Refocus last key window after DisplayServer::alert is closed. 2020-07-26 23:00:49 +03:00
Rémi Verschelde
b19b896e06
Merge pull request #40487 from nekomatata/virtual-keyboard-enter-fixes
Fix Return key events in LineEdit & TextEdit on Android
2020-07-26 20:25:53 +02:00
PouleyKetchoupp
8c05dadcff Fix Return key events in LineEdit & TextEdit on Android
Depending on the device implementation, editor actions could be
received with different action ids or not at all for multi-line.

Added a parameter to virtual keyboards to properly handle single-line
and multi-line cases in all situations.

Single-line:
Input type set to text without multiline to make sure actions are sent.
IME options are set to DONE action to force action id consistency.

Multi-line:
Input type set to text and multiline to make sure enter triggers new lines.
Actions are disabled by the multiline flag, so '\n' characters are
handled in text changed callbacks.
2020-07-26 20:06:07 +02:00
Rémi Verschelde
f940e5e000 CI: Install master version of psf/black
Until https://github.com/psf/black/pull/1328 makes it in a stable release,
we have to use the latest from Git.

Apply new style fixes done by latest black.
2020-07-26 19:48:25 +02:00
Rémi Verschelde
3842e8c465
Merge pull request #38727 from Riteo/tiling-wm-issues-tests
Fixes for windows in X11 tiling WMs
2020-07-26 17:41:28 +02:00
Rémi Verschelde
df6f867806
Merge pull request #39624 from naithar/fix/ios-touch-events-master
[4.0] Fix for iOS touch recognition
2020-07-26 15:42:51 +02:00
Sergey Minakov
e6d7e01a72 iOS: added delay gesture recognizer
This gesture recognizer will prevent GodotView from processing unwanted gestures.
Emulates UIScrollView behavior.
Fires delayed touches on significant movement.
2020-07-26 16:05:58 +03:00
bruvzg
4c0081105f
[macOS] Prevent setting BORDERLESS flag and calling window_move_to_foreground from giving focus to window with NO_FOCUS flag. 2020-07-26 15:46:07 +03:00
Sergey Minakov
fe60815d66 iOS SCons: static Vulkan binary usage
Add VMA to iphone platform Use linkflag for iphone building to enforce static linking. Works fine with dynamic '.framework' library
Updated xcode project to use '.a' static library
2020-07-25 21:55:25 +02:00
Sergey Minakov
bfc005d462 iOS: Vulkan support
Implemented Vulkan Support.
Use DisplayServer for rendering and input handling
Use single view for rendering in both GLES2 (not supported yet) and Vulkan
Use @available checks where it's required (otherwise compiler would fail compilation)
Simulator checks
2020-07-25 21:55:20 +02:00
Sergey Minakov
33038be5ed iOS SCons: update iOS minimal version
iOS 11 for iOS device
iOS 13 for iOS Simulator
2020-07-25 21:55:13 +02:00
Rémi Verschelde
963d3a07bd
Merge pull request #40610 from amanj120/forward_port_bundle_pr_manifest
Write AndroidManifest.xml file for Gradle project
2020-07-24 23:35:29 +02:00
PouleyKetchoupp
a2dd966301 Fix virtual keyboard height regression
Disabling virtual keyboard focus adjustement caused get_keyboard_height
to always return 0 because it was calculated when the view is resized.

In order to fix it, a PopupWindow is now created on top of the main view
and is set for focus adjustments so the keyboard size can be calculated
based on this popup without affecting the main view.
2020-07-24 19:54:06 +02:00
Aman Jain
e53067c42e Write an AndroidManifest.xml file to be merged with app module's manifest. 2020-07-24 12:53:27 -04:00
bruvzg
09f301029a
[macOS / ARM64] Remove "-msse2" flag from ARM64 release export template build. Add ARM64 breakpoint inline assembly to "doctest". 2020-07-24 17:54:34 +03:00
RevoluPowered
579342810f t Add unit testing to Godot using DocTest and added to GitHub Actions CI
Implements exit codes into the engine so tests can return their statuses.
Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically.

Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header.

This lowers the complexity of running the unit tests and even for
physics should be possible to implement such a fix.
2020-07-24 13:05:33 +01:00
Rémi Verschelde
1dc00ce7b9
Merge pull request #40348 from amanj120/forward_port_bundle_pr_icons
Copy project icons to Gradle project directory during Android Custom Build.
2020-07-23 18:03:08 +02:00
Aman Jain
4a5ddcbad2 Copy icons to Gradle project 2020-07-23 11:37:33 -04:00
Rémi Verschelde
dcf902df85 SCons: Remove unused DEBUG_MEMORY_ENABLED define
Its last use was removed in Godot 3.0, so it no longer makes sense to define.

Also removed `D3D_DEBUG_INFO` for Windows as it's likely a left over from a
long time ago pre-opensourcing when Godot had some form of Direct3D 9 support?
2020-07-23 09:39:10 +02:00
Lorenzo Cerqua
d670a49612 DisplayServer: separate window showing into another function
When creating a window, Godot would first register it to the WM(show it) and then set its flags.
This works fine on a floating WM, but on tiling WMs as soon as a window gets registered
the WM immediately acts on the window by scaling it up and treating it as a generic window,
being registered without any special flags.

This commit separates the showing of the window into another function and calls it after the most important flags are set,
making windows with special flags(eg. all popups) work again on tiling WMs.

Fixes #37930
2020-07-23 07:58:10 +02:00
Marcel Admiraal
8fe2ecf565 Update Linux gamepad detection to match SDL. 2020-07-22 10:17:39 +01:00
Rémi Verschelde
a5fb445121
Merge pull request #40450 from asmaloney/spelling
Fix spelling & grammar in comments, docs, and messages
2020-07-21 22:14:04 +02:00
Andy Maloney
4dda62f591 Fix spelling & grammar in comments, docs, and messages 2020-07-21 15:17:23 -04:00
thebestnom
166103c759 Android: Keyboard modifier and arrow key support 2020-07-21 22:13:24 +03:00
Rémi Verschelde
103b46733a
Merge pull request #40533 from zaevi/fix_clipboard_crlf
fix crlf for clipboard
2020-07-21 16:06:43 +02:00
Rémi Verschelde
f6b6d51052
Merge pull request #40562 from nekomatata/osxcross-vulkan-layer
Fix Vulkan layer creation when compiling with OSXCross
2020-07-21 12:57:52 +02:00
PouleyKetchoupp
08b0fd4330 Set minimum osx version to 10.12 for OSXCross compilation
Fixes this compilation error:

In file included from thirdparty/vulkan/vk_mem_alloc.cpp:7:
thirdparty/vulkan/vk_mem_alloc.h:3691:18: error: 'shared_mutex' is unavailable: introduced in macOS 10.12
            std::shared_mutex m_Mutex;
                 ^
/home/[user]/sources/osxcross/target/bin/../SDK/MacOSX10.14.sdk/usr/include/c++/v1/shared_mutex:178:58: note: 'shared_mutex' has been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_SHARED_MUTEX shared_mutex
2020-07-21 12:37:56 +02:00
PouleyKetchoupp
ce34b77c4a Fix MoltenVK layer creation when compiling with OSXCross 2020-07-21 12:37:20 +02:00
Rémi Verschelde
b7aa474680
Merge pull request #40422 from amanj120/forward_port_bundle_pr_resources
Create strings.xml files in the Gradle project to handle localization
2020-07-20 22:26:44 +02:00
Zae
0107550cf1 fix crlf for clipboard 2020-07-20 23:07:20 +08:00
PouleyKetchoupp
d7aaec8ffe Disable virtual keyboard focus adjustment on Android
Fixes #37190

The default adjustment setting was causing the view to pan down in order
to adjust the focus on the text content.

We don't need any focus adjustment since we're using a fixed size window
for our application.

Documentation:
https://developer.android.com/reference/android/view/WindowManager.LayoutParams#SOFT_INPUT_ADJUST_NOTHING
2020-07-20 12:04:02 +02:00
Aman Jain
5ff6f7a86b Create strings.xml files in the gradle project to handle localization 2020-07-15 13:02:59 -04:00
Rémi Verschelde
c8523038cc
Merge pull request #40268 from DanielZTing/master
Fix cancel/OK button order on macOS
2020-07-15 09:21:04 +02:00
thebestnom
4dc94e93bb Android: fix display server always alerting no Vulkan support 2020-07-14 19:37:36 +03:00
bruvzg
850bbabe56
[macOS] Fix window size on macOS Big Sur (title bar height is no longer same as menu height), use top-left corner as resize origin instead of bottom-left. 2020-07-14 15:09:46 +03:00
Rémi Verschelde
28e8347d6c
Merge pull request #40354 from bruvzg/add_vulkan_init_message
Display error popup instead of crashing if Vulkan init failed.
2020-07-14 09:03:25 +02:00
Aaron Franke
9986439352
Commit other files changed by file_format.sh 2020-07-13 14:14:11 -04:00
bruvzg
996910b627
Add error messages if Vulkan init failed, prevent Vulkan context freeing uninitialized device and instance. 2020-07-13 19:24:21 +03:00
Daniel Ting
9605fc54c7 Fix cancel/OK button order on macOS
The macOS platform convention regarding button order is cancel on left,
OK on right.
2020-07-10 15:10:11 -05:00
Marcel Admiraal
26fcf2b04c Add override keywords. 2020-07-10 13:56:54 +01:00
Rémi Verschelde
dc856481ff
Merge pull request #40244 from amanj120/forward_port_bundle_pr_permissions
Refactor permissions and command line flags into separate methods
2020-07-10 13:19:37 +02:00
Rémi Verschelde
f67b65864f
Merge pull request #40167 from amanj120/forward_port_bundle_pr_saving_files
Utility methods for writing files to gradle project directory
2020-07-10 11:02:03 +02:00
Aman Jain
f579057748 Refactor permissions and command line flags into separate methods 2020-07-09 16:34:08 -04:00
Aman Jain
78e003951a Utility methods for writing files to Gradle project. 2020-07-09 13:57:15 -04:00
bruvzg
bcc3c72d9c
[macOS] Fix transient windows. 2020-07-09 14:22:56 +03:00
Rémi Verschelde
d629b17291
Merge pull request #40215 from naithar/feature/ios-storyboard-usage-master
[4.0] [iOS] Option to use storyboards for launch screens
2020-07-09 08:36:01 +02:00
Sergey Minakov
96e204bb0d iOS Export: Storyboard custom values 2020-07-07 02:00:08 +03:00
Sergey Minakov
d4c541c25a iOS Export: add option to use storyboard for launch screen 2020-07-07 01:46:26 +03:00
Sergey Minakov
7b64f2df50 iOS Export: use relative path for res:// files 2020-07-06 00:56:29 +03:00
Rémi Verschelde
c2a0bfa95b
Merge pull request #40111 from DanielZTing/master
Fix opening URLS with special characters in macOS
2020-07-05 00:51:13 +02:00
Rémi Verschelde
8ccb1cec91
Merge pull request #40084 from bruvzg/macos_seamless_scaling
[macOS] Implement seamless display scaling.
2020-07-04 10:51:09 +02:00
Rémi Verschelde
9828fcc01a
Merge pull request #40105 from Logharaa/master
Stop looping as soon as the first window that has focus is found
2020-07-04 09:57:14 +02:00
bruvzg
df968d577a
[macOS] Implement seamless display scaling. 2020-07-04 10:36:33 +03:00
Daniel Ting
b8e6ff9a7f Fix opening URLS with special characters in macOS
The Online Tutorials section of InputMap in the editor's built-in
documentation viewer contains this link:

docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html#inputmap

The macOS implementation for opening a link percent-encodes it before
sending it to the browser, resulting in a 404. This is to fix #13422
where filenames with special characters could not be opened in Finder.
However, this breaks URLS so I added a check to see if the resource
scheme is file:// and if so, only then is it escaped. This allows other
schemes like `http`, `ftp`, and `mailto` to be used.
2020-07-03 23:00:48 -05:00
Gaël
6c76639c40 Break loop when the first focused window is found 2020-07-04 01:57:16 +02:00
Rémi Verschelde
73fddc623b
Merge pull request #39888 from nekomatata/windows-create-window-error
Fix errors when creating windows on Windows
2020-07-04 01:41:43 +02:00
Rémi Verschelde
c020eea184
Merge pull request #40092 from hinlopen/remove-find-last
Remove String::find_last (same as rfind)
2020-07-04 01:38:01 +02:00
Juan Linietsky
14263d3d0d Improve the situation of DND on X11 2020-07-03 12:09:22 -03:00
Stijn Hinlopen
929b98d24b Remove String::find_last (same as rfind) 2020-07-03 15:26:22 +02:00
Rémi Verschelde
aa564739dd
Merge pull request #40074 from reduz/fix-fullscreen
Fix fullscreen flag on Windows, closes #37588
2020-07-03 09:23:44 +02:00
Rémi Verschelde
64aa25b2e5
Merge pull request #40050 from naithar/feature/ios-gdnative-master-2
[4.0] Add support of iOS's dynamic libraries to GDNative
2020-07-03 07:48:13 +02:00
Juan Linietsky
b14be5f271 Fix fullscreen flag on Windows, closes #37588 2020-07-02 22:09:17 -03:00
bruvzg
a9e341cff3
[macOS] Implement confined mouse mode. 2020-07-02 17:34:58 +03:00
Sergey Minakov
864224a5c1 iOS Export: Updated Info.plist. Framework embedding. Fixes for search paths 2020-07-02 12:56:11 +03:00
Sergey Minakov
eef732342b iOS Export: turn .dylib into .framework on export 2020-07-02 12:56:05 +03:00
Rémi Verschelde
3fb5faaceb
Merge pull request #40018 from Faless/js/more_improvements_4.0
HTML5 fixes, refactor, audio fallback, fixed FPS.
2020-07-02 07:22:43 +02:00
Juan Linietsky
0b7bc83fe3 Add a focus out timeout for X11 to less events of this type are received 2020-07-01 16:14:46 -03:00
Fabio Alessandrelli
7a5e10b8a9 Use dummy driver when JS AudioContext is unavailable. 2020-07-01 17:16:13 +02:00
Fabio Alessandrelli
1a637b07b1 Limit FPS in JS by skipping iterations. 2020-07-01 17:16:13 +02:00
Fabio Alessandrelli
07d4513886 [JS] Check canvas size each loop, force redraw.
Fix compatibility issues, achieve smoother resizing.
2020-07-01 17:16:13 +02:00
Fabio Alessandrelli
a1c4c1d318 More static methods in DisplayServerJavaScript.
Were static functions in cpp file, polluting global namespace.
2020-07-01 17:16:03 +02:00
Rémi Verschelde
5c9ee93f3e
Merge pull request #39788 from bruvzg/macos_apple_silicon
[macOS] Add support for the Apple Silicon (ARM64) build target.
2020-07-01 16:45:23 +02:00
Rémi Verschelde
9000e59650
Merge pull request #40016 from akien-mga/environment-code-cleanup
Environment: Refactor code for readability + more
2020-07-01 16:28:48 +02:00
Rémi Verschelde
372136fe75 Environment: Refactor code for readability + more
- Makes all boolean setters/getters consistent.
- Fixes bug where `glow_hdr_bleed_scale` was not used.
- Split CameraEffects to their own source file.
- Reorder all Environment method and properties declarations,
  definitions and bindings to be consistent with each other
  and with the order of property bindings.
- Bind missing enum values added with SDFGI.
- Remove unused SDFGI enhance_ssr boolean.
- Sync doc changes after SDFGI merge and other misc changes.
2020-07-01 14:44:45 +02:00
Juan Linietsky
239942cfef Ensure embedded mode works again
Also implemented application in/out notifications in X11.
2020-07-01 09:27:43 -03:00
Fabio Alessandrelli
fd92270b0a Refactor canvas ID and locale handling. 2020-07-01 13:10:05 +02:00
Fabio Alessandrelli
5b1cc2d1fc Fix FS error on JS startup due to existing folder. 2020-07-01 13:10:05 +02:00
bruvzg
a07578592b
[macOS] Add application become/resign active notifications. 2020-06-30 17:59:30 +03:00
Juan Linietsky
438c380458 Add a separate application focus/in notification out from Window focus notification. 2020-06-30 10:40:06 -03:00
bruvzg
accae11fe3
[macOS export] Set correct external file attributes (Unix mode), and creation time. 2020-06-30 10:16:02 +03:00
Rémi Verschelde
524f061c01 X11: Ensure XGetWindowProperty data gets freed
And cleanup includes a bit.
2020-06-29 13:32:21 +02:00
bruvzg
00299f15b4
[macOS] Add support for the Apple Silicon (ARM64) build target. 2020-06-29 12:33:51 +03:00
Fredia Huya-Kouadio
2d53b8173e Fix the logic to enable focus awareness 2020-06-27 16:43:08 -07:00
PouleyKetchoupp
1043576ff3 Fix errors when creating windows on Windows
Detecting the case where WM_SIZE is received during the window creation.
There's no need to call window_resize on the Vulkan context.

Also creating a WindowData entry early enough to avoid storing a
separate WindowData wrongly associated to INVALID_WINDOW_ID.

Fixes #39199
2020-06-27 18:26:34 +02:00
Fredia Huya-Kouadio
175d43738a Enable the ability to use Godot as a subview within an Android app 2020-06-25 19:52:40 -07:00