Commit Graph

166 Commits

Author SHA1 Message Date
2ae5a0704a X11: Fix vformat ambiguous int types for GCC 10 (again) 2023-06-07 14:57:51 +02:00
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
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
5b9984b5a2 Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-18 20:16:03 +03:00
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
71ee65dc57 Enable shadow warnings and fix raised errors 2023-05-11 16:00:59 +02:00
7a2e350d2b x11: Do not use uninitialized timestamps.
Fixes #76922
2023-05-10 11:27:14 -07:00
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
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
520a8d8ed2 Add project manager / editor initial screen settings, implement DisplayServer.get_keyboard_focus_screen method. 2023-04-19 08:54:53 +03:00
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
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
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
41f0a523db Fix custom cursor using atlas texture
Remove image.is_valid() check
There is already a fail condition and image is not used before that
Move up texture_is_valid() check
2023-04-11 19:16:24 +02:00
d4b7466266 [X11] Fix layout bug in keyboard_get_keycode_from_physical 2023-03-29 15:18:31 +02:00
ab94024ce1 [DisplayServer] Implement screen_get_image method for LinuxBSD/X11, macOS and Windows. 2023-03-20 14:58:21 +02:00
09465f3fe6 Remove (or make verbose only) various debug prints. 2023-03-20 08:14:18 +02:00
bed46f723c [Linux/BSD] Add dynamically loaded library version checks. 2023-03-20 08:10:56 +02:00
a419325753 Fix clearing custom cursor 2023-03-10 11:59:49 +01:00
ddc9cc3e49 Tweak command syntax in Vulkan renderer failure message
This quotes the executable name so that copying it always works
(even if the path contains spaces).

The command is also indented from the rest of the text and is
no longer single-quoted, as that can prevent the command from
running if the line is copied in its entirety (with the quotes).
2023-03-08 22:28:23 +01:00
8325320192 Merge pull request #74563 from clayjohn/X11-context
Propogate errors when creating an OpenGL context fails in X11
2023-03-08 08:58:35 +01:00
e7ea3ef531 Propogate errors when creating an OpenGL context fails in X11 2023-03-07 11:12:21 -08:00
91e460d500 Fix broken shortcut key input 2023-03-07 16:06:38 +08:00
5f2137a050 Merge pull request #74087 from bruvzg/get_screen_px
[DisplayServer] Implement screen_get_pixel method for LinuxBSD/X11, macOS and Windows.
2023-03-06 21:58:58 +01:00
8a675f3824 [Linux/X11] Check if required xkb functions exist before using it. 2023-03-02 10:25:50 +02:00
e7647b5ee5 [DisplayServer] Implement screen_get_pixel method for LinuxBSD/X11, macOS and Windows. 2023-03-01 09:32:23 +02:00
f84479fe5a Merge pull request #72877 from bruvzg/x11_on_top
[X11] Fix initial "on top" window state.
2023-02-17 16:21:13 +01:00
853f0eae58 [X11] Fix initial "on top" window state. 2023-02-17 16:08:26 +02:00
4574b97752 Fix crash with bogus shape index to DisplayServer.cursor_set_custom_image()
Fixes #66605.
2023-02-17 14:17:37 +01:00
dd068794c3 [Linux] Make SO wrapper usage optional. 2023-02-16 16:38:47 +02:00
8a17f94ab2 Some fixes for initial window position and size
- X11: set main window position and size hints correctly
- All platforms: update minimum and maximum size of main window at
  startup

Fixes #70984
2023-02-14 12:15:14 +01:00
80dc7713f9 [X11] Do not suppress structure/focus events on popup close to correctly return focus. 2023-02-07 12:13:34 +02:00
103f671ada [X11] Fix IME window focus events. 2023-02-06 09:18:16 +02:00
707ccc09ab Merge pull request #72104 from bruvzg/popup-non-popups
Extend special popup window handling to any non-popup child of a popup.
2023-02-01 11:07:39 +01:00
9f42649823 [X11] Fix IME subwindow in the popup not getting input focus. 2023-02-01 11:10:10 +02:00
4c50ac3921 [X11] Add support for dead keys without active IME. Fix IME focus and cleanup. 2023-01-30 13:31:48 +02:00
700d85bd19 Extend special popup window handling to any non-popup child of a popup. 2023-01-26 12:38:53 +02:00
912c937921 [X11] Fix IME focus return. 2023-01-26 10:13:51 +02:00
67961d8ebf Merge pull request #72029 from bruvzg/x11_keycode
[X11] Fix incorrect keycodes from non-QWERTY layouts.
2023-01-25 12:17:41 +01:00
1bb7e357a0 [X11] Fix incorrect keycodes from non-QWERTY layouts. 2023-01-25 13:04:02 +02:00
5ebb60e0cf [X11] Make IME focus window input only. 2023-01-25 12:31:42 +02:00
b713cfdccd [X11] Prevent IME activation from entering infinite loop. 2023-01-25 10:21:27 +02:00
daad4aed62 Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00
68d71f88f5 Improve DisplayServer message for video card drivers failure
And remove leftover duplicated message on Android.
2023-01-17 15:41:54 +01:00
60e0043012 Fix X11 input region size. 2023-01-17 07:54:54 +02:00
34b34b104c Add WINDOW_FLAG_MOUSE_PASSTHROUGH flag and enabled it for tooltips. Expose window_set_mouse_passthrough to Window. 2023-01-16 11:42:49 +02:00
2b815df3c1 Use BitField<> in core type masks
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
2023-01-08 22:17:40 +01:00
2718a7b7d3 Add support for the custom initial screen for the main window, fix primary screen detection. 2023-01-07 11:14:35 +02:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00