Commit Graph

7802 Commits

Author SHA1 Message Date
Thaddeus Crews 74578fa41a Merge pull request #118767 from bruvzg/pref_lcs
[macOS/iOS/Windows] Add method to get full list of user preferred locales and use it for the editor locale selection.
2026-06-19 12:05:59 -05:00
Thaddeus Crews 980e6ff1ca Merge pull request #120327 from jack-klein-5/fix-simultaneous-shift-release
Fix simultaneous shift release
2026-06-18 15:14:09 -05:00
Thaddeus Crews 52a600f050 Merge pull request #119798 from Voyend/android-soft-keyboard-backspace-fix
Fix backspace being unable to delete pre-existing text in any input field when using a soft keyboard on Android.
2026-06-18 10:19:00 -05:00
Thaddeus Crews f7fcb79c43 Merge pull request #118771 from NoctemCat/web_remove_ub_at_exit
[Web] Remove undefined behavior around exit
2026-06-16 19:12:42 -05:00
jack-klein-5 1d9f732bc4 Fix simultaneous shift release
Fixes #120217 where releasing both left and right shift keys
simultaneously would result in one of the shift keys not receiving the
KEYUP event. Previously an edge case was implemented that handled
shift key release with WM_INPUT for when a shift key was released while
the other was held. This change would handle all shift key release with
WM_INPUT instead of partially with WM_INPUT and partially with WM_KEYUP
for consistent handling.
2026-06-15 12:07:29 -07:00
Voyend c0bb5a2d1f Fix backspace not deleting original text in soft keyboard on Android
When a soft keyboard's backspace sends KEYCODE_DEL via sendKeyEvent(),
GodotEditText.onKeyDown() delegates to super.onKeyDown() which modifies
the EditText's Editable, triggering beforeTextChanged() in
GodotTextInputWrapper, which then forwards KEYCODE_DEL to the engine.

However, the EditText is only seeded with text up to the cursor position
(mOriginText) when the keyboard opens. Once the user backspaces through
all of that content, the EditText becomes empty. At that point,
super.onKeyDown(KEYCODE_DEL) on an empty EditText makes no change to the
Editable, so beforeTextChanged() never fires and the engine receives no
DEL event — even though the engine's own buffer still has text before
the cursor.

This causes a visible bug: the user can delete characters they typed in
the current session, but backspacing further into pre-existing text does
nothing. Re-tapping the field fixes it temporarily because showKeyboard()
is called again, reseeding the EditText with the current text and cursor
position.

Fixed this by forwarding KEYCODE_DEL directly to the engine when the
EditText is empty, bypassing the TextWatcher path that can't fire in
that state. This produces no double events since beforeTextChanged()
is physically unable to fire on an empty field.

Move DEL release event from onKeyDown to onKeyUp
2026-06-12 17:21:41 +03:00
Thaddeus Crews fb5a83eb60 Merge pull request #120007 from bruvzg/msys_dl
Fix download scripts and build in the MSYS2 environment.
2026-06-08 15:20:55 -05:00
Pāvels Nadtočajevs fd574d221f Fix download scripts and build in the MSYS2 environment. 2026-06-04 10:58:05 +03:00
Fredia Huya-Kouadio fff89b78e7 Update download URL for GABE 2026-06-03 11:59:10 -07:00
Thaddeus Crews a8b6402965 Merge pull request #119966 from bruvzg/mac_a_no_v_m
[macOS] Fix build with enabled ANGLE and disabled Vulkan/Metal.
2026-06-02 17:39:08 -05:00
Pāvels Nadtočajevs 3bb55a2e07 [macOS] Fix build with enabled ANGLE and disabled Vulkan/Metal. 2026-06-02 15:31:43 +03:00
Ivan Shakhov a87d3cbf99 remove the godot::String and godot::StringName from godot.natvis, those visualizers are going to be in godot-cpp (https://github.com/godotengine/godot-cpp/pull/1977) 2026-06-02 05:49:44 +02:00
Thaddeus Crews 3572bad292 Merge pull request #119141 from deralmas/wl/hover
Wayland: Improve hovered window handling
2026-05-26 10:09:39 -05:00
Stuart Carnie fdd53b7b1d macos: Fix mouse warp for embedded game window 2026-05-26 06:23:32 +10:00
Thaddeus Crews f7d37c74c1 Merge pull request #118190 from Hrothdel/web-fix-poll-export
[Web] Fix `poll_export` changing current export_preset
2026-05-22 19:24:18 -05:00
KOGA Mitsuhiro fcc194c585 Android: Fix infinite recursion in proxy equals handler
Kotlin's `==` on the proxy compiles to `proxy.equals(args[0])`, which
the JDK proxy dispatches back through the InvocationHandler, hitting
the same branch and recursing into StackOverflowError. Use `===` for
reference equality, matching the default Object#equals behavior.
2026-05-22 22:22:45 +09:00
Muteem 471a4a79c0 Android: Fix ClassCastException in proxy hashCode when ObjectID is returned as Long
Object.hashCode() must return Int (32-bit), but the proxy InvocationHandler
returned godotObjectID directly (Long, 64-bit). When a HashMap-like container
called proxy.hashCode(), the auto-generated proxy did (Integer) result on a
java.lang.Long and threw ClassCastException.

Signed-off-by: Muteem <29696635+Muteem@users.noreply.github.com>
2026-05-22 22:20:52 +09:00
Leonard Pop 610e334d4c [Web] Fix poll_export changing current export_preset 2026-05-22 11:08:20 +03:00
Muteem 08c08bfef2 Android: Fix NPE when proxy interface method has no arguments
JDK contract: InvocationHandler.invoke's args parameter is null when
the proxied interface method takes no arguments. The proxy handlers
in AndroidRuntimePlugin used `*args` directly, which spread-deref'd
null and threw NullPointerException.

Signed-off-by: Muteem <29696635+Muteem@users.noreply.github.com>
2026-05-20 16:23:30 +08:00
Thaddeus Crews ef02314f2b Merge pull request #119545 from bruvzg/exp_noti
Fix export notifier.
2026-05-18 11:06:32 -05:00
Thaddeus Crews 0e57853371 Merge pull request #119455 from bruvzg/vs_scons_ver
[Windows] Check if used SCons version supports requested MSVC.
2026-05-18 11:06:32 -05:00
Thaddeus Crews 2c5bdd1f9c Merge pull request #119510 from van800/shakhov/fixes
open_dynamic_library(String(), library, &data) should only be called for apple
2026-05-18 11:06:26 -05:00
Thaddeus Crews 819cae99f8 Merge pull request #119331 from norepro/fix-x11-release-pressed-events
Release X11 pressed events on true focus loss
2026-05-18 11:06:26 -05:00
Thaddeus Crews 8ae90e9442 Merge pull request #119495 from m4gr3d/fix_main_path_use_for_android
[Android] Fix the use of `--main-pack` in template builds
2026-05-18 11:06:25 -05:00
Pāvels Nadtočajevs 2ae09f7184 [Windows] Check if used SCons version supports requested MSVC. 2026-05-18 18:11:51 +03:00
Pāvels Nadtočajevs 4742cd3b80 Fix export notifier. 2026-05-18 15:39:24 +03:00
Ivan Šachov e744959de5 avoiding an incorrect ERR_FILE_NOT_FOUND report when the DLL exists but fails to load for another reason
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2026-05-16 21:55:33 +02:00
Fredia Huya-Kouadio 948032c89c [Android] Fix the use of --main-pack 2026-05-15 23:03:54 -07:00
Thaddeus Crews 7af66e02ef Merge pull request #119448 from buresu/fix-wayland
Wayland: Fix incorrect fallback value for height in _xdg_popup_on_configure
2026-05-15 15:42:05 -05:00
Michael Alexsander 088cd1faa4 Fix wrong path in EditorExportPlugin._export_begin() when zipping 2026-05-14 19:44:40 -03:00
Naoto Kondo 814d08d77f Wayland: Fix incorrect fallback value for height in _xdg_popup_on_configure 2026-05-14 10:44:44 +09:00
Thaddeus Crews 9a33066a27 Merge pull request #119297 from m4gr3d/misc_bug_fixes
[Android] Miscellaneous bug fixes
2026-05-13 09:53:54 -05:00
Thaddeus Crews e333258f94 Merge pull request #119433 from bruvzg/win_await
[Windows] Remove `await` MSVC flags.
2026-05-13 09:53:53 -05:00
Pāvels Nadtočajevs a9088880c2 [Windows] Remove await MSVC flags. 2026-05-13 10:51:51 +03:00
Anish Kumar 1f5c3cbb7f Fix Android plugin signal regression 2026-05-13 04:29:11 +05:30
norepro 800223a043 Release X11 pressed events on true focus loss
There are two "focus lost" signals in the Godot X11 display server:

1. `FocusOut` - native X11 signal

2. `NOTIFICATION_APPLICATION_FOCUS_OUT` - Godot signal after 250ms of
no other window getting focus.

When focus is lost, the intent is to clear any input pressed events so
that, when focus returns, we have a clean slate.

The bug is that the pressed events are (attempted to be) cleared on the
first signal, X11's `FocusOut`. This is always a no-op because it
returns early if the application still has focus. Godot's X11 server
only sets that flag after the second signal, not the first.

Move the pressed event clearing from the first signal handler to the
second. This makes clearing pressed events do what it says.

This does not affect Wayland because it does not have the 250ms grace
period.

Simple repro is to load any 3D scene, hold 'W' and, while 'W' is held,
click on any non-Godot window. Release 'W', click back to Godot, and
hold RMB. It will zoom forward as if 'W' is still pressed.

After the fix, the same test has RMB look around as expected when no
other keys are pressed.

Fixes #118897
2026-05-08 00:41:20 -07:00
Thaddeus Crews ee4e7e51bc Merge pull request #119303 from norepro/x11-xsync-badwindow-errors
Fix some X11 BadWindow errors not being ignored
2026-05-07 11:13:31 -05:00
Aaron Franke 7ffda5c701 LinuxBSD crash handler: Move addr2line finding to its own function 2026-05-07 00:14:50 -07:00
norepro 3ffec30d51 Fix some X11 BadWindow errors not being ignored
Godot suppresses X11 BadWindow errors during some operations because
they can occur with normal usage.

X11 errors are asynchronous. Sometimes, when a BadWindow error is sent,
it is dequeued after the original non-BadWindow-suppressing error
handler has been restored. This results in an error callstack being
shown to the user.

Call `XSync` before restoring the original error handler. This ensures
that any queued BadWindow errors go to the suppressing handler.

Fixes #117814
2026-05-06 22:55:31 -07:00
Fredia Huya-Kouadio ca46bafc51 Fix the command line parsing logic for the --main-pack argument 2026-05-06 13:11:35 -07:00
Thaddeus Crews b786c890b6 Merge pull request #119252 from deralmas/wl/embedder-mods
Wayland Embedder: Track keyboard modifier keys
2026-05-06 14:56:32 -05:00
Thaddeus Crews fddd45ea1c Merge pull request #119091 from ArchercatNEO/context-driver-surface-supports-hdr
HDR: Implement checking if surface supports HDR output.
2026-05-06 14:56:27 -05:00
ArchercatNEO 3f29efc8a2 HDR: Implement surface supports HDR output.
Previously the Wayland display server would attempt to enable
HDR output and try to detect if it failed afterwards which had some issues.
Now we can query the rendering driver for support and avoid ever enabling
HDR output when this would fail.
2026-05-06 19:51:54 +01:00
Thaddeus Crews cb490e6e23 Merge pull request #119172 from syntaxerror247/gabe-ready-for-release
Remove experimental warning from `Use Gradle Build` option on Android
2026-05-06 10:53:35 -05:00
Thaddeus Crews 952d4860b2 Merge pull request #119278 from bruvzg/win2019_fx
[Windows] Force supported SDK with MSVC 2019, add Scons option to set SDK version.
2026-05-06 10:53:35 -05:00
Pāvels Nadtočajevs 6e9d66d923 [Windows] Force supported SDK with MSVC 2019, add option Scons option to set SDK version. 2026-05-06 15:01:34 +03:00
Anish Kumar 9ecaf9307f Remove experimental warning from Use Gradle Build option on Android 2026-05-06 17:23:31 +05:30
Pāvels Nadtočajevs 873131973a Fix incorrect feature overrides when exporting for Linux. 2026-05-06 10:23:18 +03:00
Fredia Huya-Kouadio 51876c561c Set the Game window to a different task affinity than the Editor window.
This allows to distinguish between both running activities in the `Recent Apps` screen.
2026-05-05 17:54:17 -07:00
Anish Kumar 7338c3475b Fix Android plugin regression 2026-05-05 20:17:57 +05:30