Commit Graph

450 Commits

Author SHA1 Message Date
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
e7779dc62d Use a "warning" icon in OS.alert() on Linux/*BSD
This is the same icon as used on Windows.
2023-02-02 15:17:15 +01: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
a0a633ae58 Merge pull request #72102 from Riteo/keymapx11-scope-goodness
Put KeyMappingX11 stuff inside its own scope
2023-01-27 10:30:20 +01:00
240374c58f Fix split allow empty string in SSH export plugin 2023-01-27 05:09:30 -03: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
aa7cd71498 Put KeyMappingX11 stuff inside its own scope
This avoids collisions with other "concurrent" key mappers.
2023-01-26 03:19:36 +01: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
4368191a9f Merge pull request #72018 from bruvzg/x11_ime_loop
[X11] Prevent IME activation from entering infinite loop.
2023-01-25 09:44:50 +01:00
b713cfdccd [X11] Prevent IME activation from entering infinite loop. 2023-01-25 10:21:27 +02:00
beaff2f5cb Move xkbcommon dynamic loading code into generic linuxbsd folder
Since Wayland uses it too, it only makes sense to have it in the parent
directory of both.
2023-01-25 03:28:13 +01:00
5c4fe6339b [Linux/BSD] Include headers for dynamically loaded libraries to simplify build dependencies. 2023-01-23 16:37:43 +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
5b1df48c6c Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
271920cc54 Merge pull request #71819 from Riteo/certified-musl-moment
Make PIE relocation detection glibc-only
2023-01-21 20:52:40 +01:00
2a6ce37910 Make PIE relocation detection glibc-only
Musl doesn't compile with it, and by looking online I think that this is
a glibc only thing.
2023-01-21 17:59:52 +01:00
9faa92bda0 Exclude atomic lib under FreeBSD using LLVM 2023-01-20 20:52:19 +00: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
91a54cdbc1 Linux/BSD: Add LINUXBSD_ENABLED define for non X11-related checks 2023-01-16 17:01:35 +01: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
9711abe787 Merge pull request #71437 from vaartis/linux-backtrace
Alter linux debug stacktraces handling to support more environments
2023-01-15 13:09:31 +01:00
5e041eee11 Alter linux debug stacktraces handling to support more environments
- Use -gdwarf-4 to support both LLVM and GCC when calling addr2line
- Subtract position-independant execuable relocation when passing the
  address to addr2line
2023-01-15 02:48:33 +03:00
4c1f11944e Update all outdated online documentation links 2023-01-14 19:38:00 +03:00
3dffe0b967 Merge pull request #63312 from bruvzg/one_click
[Export] Add one-click deploy over SSH for the desktop exports.
2023-01-13 18:00:18 +01: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
8791e333da Merge pull request #70624 from bruvzg/cur_sc
Improve `window_set_current_screen` and fix secondary window initial mode and positions.
2023-01-03 15:56:05 +01:00
f7955633de Improve window_set_current_screen and fix secondary window initial mode and positions. 2022-12-29 09:43:39 +02:00
cebefc9f5d [Export] Add one-click deploy over SSH for the desktop exports.
Add one-click deploy over SSH for the desktop exports.
Add ZIP export option for Linux and Windows.
Change export plugin icons to SVG format.
2022-12-29 09:42:00 +02:00
3960c6b8f9 Allow building X11 without Vulkan
This limit was likely introduced when Vulkan was the only option.
2022-12-27 21:47:26 +01:00
f8f496ec3b Merge pull request #69678 from Sauermann/fix-slider-button-up
Fix colorpicker slider bug with mouse-up outside of popup
2022-12-16 13:47:53 +01:00
207e52c161 Fix String::word_wrap() for long words
- Changes `TextServer.string_get_word_breaks()`
  - Returns pairs of boundary start and end offsets
  - Accepts `chars_per_line` to return line breaks
- Removes `String::word_wrap()`

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-12-16 13:18:57 +08:00
346efd29e0 Fix typos with codespell 2022-12-15 12:24:08 +01:00
4fec34808d fix dbus and fontconfig links 2022-12-09 09:05:06 -08:00
0a3f66471e Merge pull request #69712 from bruvzg/real_size
Rename `window_get_real_size`, add position counterpart.
2022-12-07 14:29:46 +01:00
edf13eb5a6 Rename window_get_real_size to window_get_size_with_decorations, add window_get_position_with_decorations. 2022-12-07 11:07:30 +02:00
ad0f6ff85b [Linux/X11] Split fullscreen mode into WINDOW_MODE_EXCLUSIVE_FULLSCREEN and WINDOW_MODE_FULLSCREEN to improve multi-window handling. 2022-12-07 09:54:02 +02:00
b44e6bb42b Fix colorpicker slider bug with mouse-up outside of popup
When releasing the mouse button outside of the popup while dragging
a slider, the slider still gets adjusted by mouse-move events.

The reason for this bug is that the mouse-up event is sent to the
focused window (main editor window) instead of the colorpicker
popup window.

This PR adjusts the linuxbsd X11 DisplayServer to send the event to the
correct expected window.
2022-12-06 19:30:13 +01:00
ada4761181 Fix that mouse-button-up event is parsed twice for drag-and-drop
Currently Input::get_singleton()->parse_input_event(mb); is
called twice for mouse-button-up events when dropping in a different
window on linuxbsd.
2022-12-05 19:31:22 +01:00
14f23df1a3 Merge pull request #69563 from nyanpasu64/patch-1
Fix burning CPU with udev disabled on Flatpak
2022-12-05 18:07:02 +01:00
89db7f8e7c [Linux/BSD] Fix build without fontconfig. 2022-12-05 07:56:44 +02:00
ecec415988 Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00