Age | Commit message (Collapse) | Author |
|
On FocusOut events, the window could be destroyed while propagating
WINDOW_EVENT_FOCUS_OUT event, which causes the WindowData to be
invalidated, and still used for calls to XUnsetICFocus.
This change moves calls to XUnsetICFocus, and also XSetICFocus in
FocusIn events, before propagating the change of focus event to the
engine, to be safe in any case.
Also setting xic member to nullptr after all calls to XDestroyIC to keep
things clean and consistent.
Fixes #42645
|
|
|
|
Fix issues related to delay when processing events on X11 display server
|
|
Hide special folders in FileDialog for macOS
|
|
Fix splash screen loading on Android
|
|
iOS: Fix multiple issues with PVRTC import, disable ETC1
|
|
[macOS] Fix mouse position in captured mode.
|
|
|
|
|
|
When pasting clipboard content from Godot to other applications,
multiple SelectionRequest events are sent to Godot in order to access
the data. It could take a long time before the data is ready for the
other app because events were processed one by one on the main thread,
especially when Godot is unfocused and runs at low frequency.
With this change, SelectionRequest events are directly handled on the
separate event polling thread to minimize this delay.
This change also replaces clipboard_get() calls in SelectionRequest with
a direct access to internal_clipboard, since in this case we know Godot
is the owner of the clipboard content and it's not necessary to query
the x server for it.
|
|
|
|
This change makes keyboard inputs more responsive on Linux, especially
when the FPS is lower on slower configurations.
Polling events from the x server is done on a separate thread to avoid a
frame delay with inputs, due to first sending the event to the input
manager with XFilterEvent then processing the new event only on the next
frame.
Calls to Input Manager functions like XSetICFocus, XUnsetICFocus and
XSetICValues use a mutex, because they are polling events internally and
would otherwise interfere with our own thread process for polling events
which can cause a deadlock in some cases.
XUnsetICFocus is called instead of XSetICFocus on FocusOut events,
so the input manager can be properly notified of focus changes.
clipboard_get now uses a blocking call to poll for a specific event type
when waiting for a SelectionNotify event, instead of polling all events
and filtering them afterwards.
|
|
Fixes: #28683, #28621, #28596 and maybe others
For iOS we enable pvrtc feature by default for all backends
Etc1 for iOS doesn't have any sense, so it disabled.
Fixed checks in export editor.
Fixed pvrtc encoding procedure.
Edit by Akien: Forward-ported from #38076, this may not make sense as is for
Godot 4.0, but it's important that we have the latest code in sync with 3.2
for when more rendering backends and proper iOS support are added back.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|
[HTML5] Synchronous main, better persistence, handlers fixes, optional full screen.
|
|
The engine now expects to emscripten FS to be setup and sync-ed before
main is called. This is exposed via `Module["initFS"]` which also allows
to setup multiple persistence paths (internal use only for now).
Additionally, FS syncing is done **once** for every loop if at least one
file in a persistent path was open for writing and closed, and if the FS
is not syncing already.
This should potentially fix issues reported by users where "autosave"
would not work on the web (never calling `syncfs` because of too many
writes).
|
|
|
|
|
|
|
|
Crated helper class in native/utils.js.
Simplify code in OS/DisplayServer.
|
|
|
|
|
|
|
|
Using codespell 1.17.1.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
|
|
All Linux distros, and FreeBSD and OpenBSD seem to have libXrandr.so.2,
but for some reason recent NetBSD versions seem to have libXrandr.so.3 now.
|
|
Add __NetBSD__ to `platform_config.h` so that it can find `alloca`
and use the proper `pthread_setname_np` format.
Rename RANDOM_MAX to avoid conflict with NetBSD stdlib.
Fixes #42145.
|
|
|
|
|
|
|
|
|
|
Change default encryption mode from ECB to CFB.
|
|
|
|
Revert #41164, add subsystem build option.
|
|
Proper implementation for get_window_at_screen_position:
Now getting the topmost last active window when overlapping.
Mouse drag & release events:
They are now propagated through the current focused window, in order to
make it consistent with the engine expectations and the Windows display
server implementation.
|
|
Popup fixes for X11 display server
|
|
|
|
godotengine/revert-40671-virtual-keyboard-height-fix
Revert "Fix virtual keyboard height regression"
|
|
godotengine/revert-40484-android-virtual-keyboard-adjustment
Revert "Disable virtual keyboard focus adjustment on Android"
|
|
|
|
|
|
|
|
On Windows, WINDOW_EVENT_FOCUS_IN was never sent by the display server
for popups, because WM_ACTIVATE events are received during the call to
_update_window_style, which happened before the callbacks were set.
This was causing some issues with the way Popup is now handling closing on
parent focus.
Now _update_window_style is only called during show_window, after Window
initialized callbacks.
|
|
Now using override_redirect for menu & tooltip popups to prevent the WM from
interfering with them, so we have more control over focus management
and avoid a delay before they show up.
|
|
|
|
From PR #38727 which was reverted in #41373 because of regressions in Ubuntu
with Gnome.
Co-authored-by: Lorenzo Cerqua <lorenzocerqua@tutanota.com>
|
|
|
|
|
|
|
|
[iOS] [4.0] Export: Add a method to embed a framework
|
|
By default 'add_ios_framework' would not embed a framework to save previous behavior.
New 'add_ios_embedded_framework' would embed framework on export.
|
|
|