1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-06 17:25:19 +00:00
Commit Graph

136 Commits

Author SHA1 Message Date
Pāvels Nadtočajevs
101fbbbd1f [Window] Add unfiltered input handler signal for custom decorations. 2025-10-12 21:15:46 +03:00
Aaron Franke
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Pāvels Nadtočajevs
7b47f5e8db [Accessibility] Process non-focusable windows (popups, menus) as part of the parent window tree. 2025-08-17 12:15:08 +03:00
Pāvels Nadtočajevs
2111ff0e2a Fix menu keyboard and controller navigation. 2025-07-21 10:03:07 +03:00
Thaddeus Crews
353bd80c91 Merge pull request #107581 from timothyqiu/window-title-update
Fix game view window not updating title when translation changes
2025-06-18 18:13:50 -05:00
Pāvels Nadtočajevs
34a97f9c9b Fix scale and position of popups with force_native. 2025-06-16 13:03:42 +03:00
Haoyu Qiu
0a1fa10315 Fix game view window not updating title when translation changes 2025-06-16 09:35:25 +08:00
Pāvels Nadtočajevs
12d957e737 Call PopupMenu min. size calculations after about_to_popup signal processing. 2025-06-11 12:23:29 +03:00
Pāvels Nadtočajevs
aff5b413aa Move some accessibility properties from Node to Control 2025-06-08 16:25:28 +03:00
Pāvels Nadtočajevs
4afeca3bcf Replace global oversampling with overrideable per-viewport oversampling. 2025-04-14 13:43:09 +03:00
Thaddeus Crews
e6a61b1ecc Merge pull request #76829 from bruvzg/ac_kit_direct
Implement screen reader support using AccessKit library.
2025-04-08 12:32:47 -05:00
Pāvels Nadtočajevs
b106dfd4f9 Base accessibility API. 2025-04-08 20:14:28 +03:00
Pāvels Nadtočajevs
f37fb49739 Add separate minimize_disabled and maximize_disabled window flags. 2025-04-07 18:58:11 +03:00
Riteo
84d3adcf2f Wayland: Implement native sub-windows
The backend is now mature enough to not explode with multiple windows
but the `DisplayServer` API still cannot meet some guarantees required
by the various Wayland protocols we use. To meet those guarantees this
patch adds three new elements to the DisplayServer API, with relative
handling logic for `Window` and `Popup` nodes:

 - `WINDOW_EVENT_FORCE_CLOSE`, which tells a window to *forcefully*
close itself and ensure a proper cleanup of its references, as Wayland
enforces this behavior;

 - `WINDOW_FLAG_POPUP_WM_HINT`, which explicitly declares a window as a
"popup", as Wayland enforces this distinction and heuristics are not
reliable enough;

 - `FEATURE_SELF_FITTING_WINDOWS`, which signals that the compositor can
fit windows to the screen automatically and that nodes should not do
that themselves.

Given the size of this feature, this patch also includes various
`WaylandThread` reworks and fixes including:

 - Improvements to frame wait logic, with fixes to various stalls and a
configurable (through a `#define`) timeout amount;

 - A proper implementation of `window_can_draw`;

 - Complete overhaul of pointer and tablet handling. Now everything is
always accumulated and handled only on each respective `frame` event.
This makes their logic simpler and more robust.

 - Better handling of pointer leaving and pointer enter/exit event
sending;

 - Keyboard focus tracking;

 - More solid window references using IDs instead of raw pointers as
windows can be deleted at any time;

 - More aggressive messaging to window nodes to enforce rects imposed by
the compositor.
2025-04-04 20:23:25 +02:00
Rémi Verschelde
7b21950fb0 Merge pull request #103751 from bruvzg/glob_menu_icons_theme
[Editor] Change global menu icons theme independently of editor theme.
2025-03-19 12:26:57 +01:00
Pāvels Nadtočajevs
d990f594a0 Sync display/window/size/initial_position_type and Window::WINDOW_INITIAL_POSITION_ enum. 2025-03-11 08:33:02 +02:00
Thaddeus Crews
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
Pāvels Nadtočajevs
fd98c963ba [Editor] Change global menu icons theme independently of editor theme. 2025-03-07 08:59:52 +02:00
Rémi Verschelde
65cf7c1d5e Merge pull request #101221 from bruvzg/win_dec_exp
[Window] Expose `start_drag` and `start_resize` methods (for both native and embedded windows).
2025-01-09 11:17:24 +01:00
Rémi Verschelde
b194e050d7 Merge pull request #91333 from YeldhamDev/working_on_this_felt_like_constantly_walking_into_rakes
Make `PopupMenu/Panel` shadows properly visible again
2025-01-07 23:17:02 +01:00
Pāvels Nadtočajevs
8d911b2554 [Window] Expose start_drag and start_resize methods (for both native and embedded windows). 2025-01-07 23:35:14 +02:00
bruvzg
9fece033ab [macOS, Windows] Add support for excluding windows from a screenshot. 2024-12-10 11:00:13 +02:00
Michael Alexsander
f7f6432af6 Make PopupMenu/Panel shadows properly visible again 2024-12-02 14:20:58 -03:00
kobewi
e0304a7d00 Add helper method to get Window from ID 2024-11-29 21:15:23 +01:00
Pāvels Nadtočajevs
932b2269f8 Fix missing native file dialog title translation. 2024-11-14 14:48:52 +02:00
Adam Scott
0d350e7108 Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Thaddeus Crews
7dbea98c49 Merge pull request #97005 from Repiteo/core/window-corner-style
Core: Add `DisplayServer` flag for sharp corners
2024-10-21 16:39:25 -05:00
Thaddeus Crews
f8c4a683d7 Core: Add DisplayServer flag for sharp corners 2024-10-18 11:20:21 -05:00
Haoyu Qiu
009446a277 Add System Locale layout direction for Control and Window 2024-10-17 07:52:07 +08:00
Markus Sauermann
60aaa017ff Enable Drag and Drop for SubViewports and Windows
Make Drag and Drop an application-wide operation.
This allows do drop on Controls in other Viewports/Windows.

In order to achieve this, `Viewport::_update_mouse_over` is adjusted to
remember the Control, that the mouse is over (possibly within nested
viewports). This Control is used as a basis for the Drop-operation, which
replaces the previous algorithm, which was only aware of the topmost
Viewport.

Also now all nodes in the SceneTree are notified about the Drag and Drop
operation, with the exception of SubViewports that are not children of
SubViewportContainers.
2024-09-15 01:06:02 +02:00
rune-scape
0dde931bc9 StringName: Fix empty hash
+Fixed compat hashes
2024-09-09 13:30:02 -07:00
bruvzg
19839d9553 Fix Window position preview in the editor. 2024-05-29 11:56:06 +03:00
bruvzg
cfdb968848 [Window] Allow to override viewport and project settings and force use of native window. 2024-03-04 23:06:27 +02:00
Rémi Verschelde
3ce9ae71fc Merge pull request #84906 from /fix-some-defvals 2024-02-23 11:29:22 +01:00
Raul Santos
5ba92e5a57 Fix some DEFVALs to use the right type
- Use `StringName()` in DEFVAL for StringNames.
- Use `Variant()` in DEFVAL for Variants.
2024-02-23 01:50:18 +01:00
Michael Alexsander
584a6aeeb7 Revert "Fix NOTIFICATION_WM_SIZE_CHANGED firing if the size hasn't changed"
This reverts commit 957378a69e, reversing
changes made to 0d88840e81.
2024-02-21 15:37:53 -03:00
Michael Alexsander
7b42c24550 Make auto translation inheritable 2024-02-15 16:51:19 -03:00
Rémi Verschelde
03767fbf3b Merge pull request #86446 from reduz/transient-to-focused
Implement a `transient_to_focused` Window mode
2024-01-15 13:25:00 +01:00
Juan Linietsky
15144c24bd Implement a transient_to_focused mode
This intends to be the correct way to handle non-child windows becoming covered by the current window when becoming focused.
Enabling this property on select windows, they will become transient to the currently focused one when becoming visible.

This deprecates the "unparent_when_invisible" function introduced by #76025.
2024-01-14 18:51:44 +01:00
Jakub Marcowski
06534f8ad5 Add deprecation notice to a duplicate method of class Window 2024-01-12 18:18:28 +01:00
Rémi Verschelde
957378a69e Merge pull request #84151 from YeldhamDev/that_was_not_a_resize_you_dunce
Fix `NOTIFICATION_WM_SIZE_CHANGED` firing if the size hasn't changed
2024-01-02 15:08:46 +01:00
Yuri Sizov
02d4579fa2 Merge pull request #85000 from bruvzg/ed_ui_direction
[Editor] Add option to override editor UI layout direction.
2023-12-19 13:01:35 +01:00
bruvzg
932174fedf [Editor] Add option to override editor UI layout direction. 2023-11-17 14:56:45 +02:00
Markus Sauermann
fa02d19fd1 Fix internal events not being delivered to some Window types
`AcceptDialog`, `Popup` and `PopupMenu` no longer subscribe to
"window_input" signal, because that is only sent if it is not an
internal signal.

Instead they receive events in `_input_from_window`. They ensure that
the event is also propagated to their super-function, just like
previously the signals would be treated.
2023-11-14 20:29:17 +01:00
Michael Alexsander
62ab9bf1c4 Fix NOTIFICATION_WM_SIZE_CHANGED firing if the size hasn't changed 2023-10-31 22:58:12 -03:00
bruvzg
72e2e47059 [DisplayServer] Add method to estimate window title bar size. 2023-10-03 16:13:52 +03:00
Rémi Verschelde
1e819ae3aa Merge pull request #82590 from YuriSizov/window-you-come-to-me-on-this-day-the-day-when-my-child-becomes-exclusive-with-a-transient-parent-to-ask-for-this
Add more context to some `Window` errors
2023-10-02 13:16:39 +02:00
Yuri Sizov
53172d9860 Add more context to some Window errors 2023-09-30 21:44:05 +02:00
bruvzg
c52db6190c [FileDialog] Make set_visible compatible with native dialogs. 2023-09-30 00:40:49 +03:00
Yuri Sizov
fe000277ea Bind remaining theme properties to their respective classes
This adds binds for GraphEdit/GraphElement/GraphNode, which were
skipped before due to a rework. This also adds binds for Window,
which was skipped before due to a complicated code organization.

Also adds theme cache entries/direct cache access to a few places
that previously missed it. Some theme properties are now exposed
to other classes via friendships or public getters for convenience.

This removes all string-based theme access from scene/ classes.
2023-09-13 19:31:35 +02:00