Commit Graph

6165 Commits

Author SHA1 Message Date
Thaddeus Crews 0d267e7b1e Core: Add dedicated BitField template 2025-04-11 11:53:26 -05:00
Thaddeus Crews b546680e96 Merge pull request #105265 from bruvzg/gr_node_resize
Fix graph node resizing.
2025-04-11 09:51:10 -05:00
Thaddeus Crews 717df3ee88 Merge pull request #105249 from Repiteo/core/math-defs-namespace
Core: Use `Math` namespace for constants
2025-04-11 09:51:04 -05:00
Pāvels Nadtočajevs 13cf88073b Fix graph node resizing. 2025-04-11 08:20:20 +03:00
Thaddeus Crews 297650a912 Merge pull request #93466 from bruvzg/alt_oem
[TextEdit / LineEdit] Add support for OEM Alt codes input.
2025-04-10 16:53:46 -05:00
Thaddeus Crews 4c66c21542 Merge pull request #103024 from cruglet/master
TabBar: Add boolean toggle for middle-click to fire `tab_close_pressed` signal.
2025-04-10 16:53:44 -05:00
Thaddeus Crews 94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
Thaddeus Crews cade15a163 Merge pull request #92475 from AThousandShips/string_replace_char
Add `String::replace_char(s)` methods for performance and convenience
2025-04-10 10:18:16 -05:00
Thaddeus Crews 3e9f624b0b Merge pull request #103791 from BrotherShort/scenetree_item_text_display
Fix SceneTree Item text display bug in Right-to-Left
2025-04-10 10:18:15 -05:00
Thaddeus Crews 6fce829fce Merge pull request #105007 from Aziroshin/dev/aziroshin/comment-after-region-not-folding-102382
[CodeEdit] Fix folding for comments mixed with code region tags.
2025-04-10 10:18:14 -05:00
Thaddeus Crews 504036466b Merge pull request #102878 from Giganzo/tree-jiggle
Fix Tree buttons jiggle on horizontal scrolling
2025-04-10 10:18:11 -05:00
A Thousand Ships 889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
bruvzg aa0ade5b49 [TextEdit / LineEdit] Add support for OEM Alt codes input. 2025-04-10 08:52:19 +03:00
Thaddeus Crews 45fb66f4b0 Merge pull request #104632 from ibrahn/popup-menu-mouseover-calc
Fix and simplify hit calculation in `PopupMenu::_get_mouse_over`.
2025-04-09 18:11:58 -05:00
Thaddeus Crews c6394a1b8b Merge pull request #104357 from FilipeAlexCosta/control-set-position
Fix `Control.set_position` resizes offsets/anchors
2025-04-09 18:11:55 -05:00
Thaddeus Crews 36a135ca62 Merge pull request #104451 from WinnerWind/fix_resized_logic_for_control
Fix excessively calling resized and floating point errors in Control.
2025-04-09 18:11:35 -05:00
Thaddeus Crews c7fc877895 Merge pull request #101745 from Rindbee/remove-is_top_level_control
Remove confusing `Control::is_top_level_control()`
2025-04-09 08:51:46 -05:00
Cruglet 1a1711f1ee Add middle-click removing for TabBars
Added a boolean option field to enable the firing of the "tab_close_pressed" signal when middle clicking on a tab.
2025-04-09 07:56:09 -04:00
kobewi 13741ff913 Add FoldableContainer
Co-authored-by: WhalesState <whalesstate@gmail.com>
2025-04-08 22:27:32 +02: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
Aziroshin 40b7931279 [CodeEdit] Fix folding for comments mixed with code region tags.
Co-authored-by: Kit Bishop <kitbdev@gmail.com>
2025-04-07 20:50:54 +02:00
Pāvels Nadtočajevs f37fb49739 Add separate minimize_disabled and maximize_disabled window flags. 2025-04-07 18:58:11 +03:00
Thaddeus Crews 0fbb22c095 Merge pull request #104432 from YYF233333/dict_iter2
Do not iterate `Dictionary` with `Dictionary::keys()`
2025-04-07 08:43:33 -05:00
Thaddeus Crews b7c452a36d Merge pull request #104614 from kleonc/control_layout_mode_fallback_to_valid_value
Fallback `Control.layout_mode` to valid mode when child of non-container control
2025-04-07 08:43:22 -05:00
Thaddeus Crews cd234eae45 Merge pull request #104984 from KoBeWi/ETH
Fix wrong translation method in FileDialog
2025-04-07 08:43:20 -05:00
Yufeng Ying 8ae16699c5 Do not use Dictionary::keys() for Dictionary iteration. 2025-04-05 18:42:13 +08: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
Thaddeus Crews 9bbda47794 Merge pull request #104776 from BrotherShort/TextEdit-VScroll-max-tolerance
Fix TextEdit VScroll max tolerance
2025-04-03 16:50:14 -05:00
kobewi 83ee5e8556 Fix wrong translation method in FileDialog 2025-04-03 20:40:09 +02:00
BrotherShort 1077fdb15a fix TextEdit VScroll max tolerance
newline

Co-Authored-By: Kit Bishop <kitbdev@gmail.com>
2025-04-03 21:22:57 +08:00
Yufeng Ying 7a1a970c25 size() <= 0 and size() < 1. 2025-04-02 19:18:44 +08:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Thaddeus Crews d52b84e472 Merge pull request #103993 from aaronfranke/geometry-segment
Directly use segment points in Geometry2D/3D function parameters
2025-04-01 08:01:34 -05:00
Thaddeus Crews 8f6bb119f4 Merge pull request #100602 from KoBeWi/over_100_changes_in_50_random_files_aka_the_best_kind_of_PR
Add templated version of `ObjectDB::get_instance()`
2025-03-31 12:03:47 -05:00
Filipe Alexandre Francisco Costa ca57fe1db4 Fix #100536: Control set_position resizes offsets/anchors
The set_position method computes the anchors/offsets to match a
rectangle at the given position with size "size_cache". However, when
the Control's combined minimum size is larger than the size obtained
through the offsets and anchors, "size_cache" is set to be as large as
the combined minimum size. Therefore, when position is set while the
combined minimum size is larger than the rectangle given by the anchors
and offsets, it would resize these two fields, which would then stop
the Control from shrinking when its combined minimum size decreased. To
fix this, set_position now uses the size given by the offsets and
anchors instead of the "size_cache" field. This way, the rectangle
denoted by the offsets and anchors is simply moved, without being
resized, enabling the Control to shrink automatically when its combined
minimum size decreases. I also added a test case to ensure that the
Control shrinks correctly after setting its position while it has a
larger custom minimum size than the one obtained through the offsets
and anchors.
2025-03-31 08:50:00 +01:00
Aaron Franke c1acc839a8 Directly use segment points in Geometry2D/3D function parameters 2025-03-30 16:25:59 -07:00
Thaddeus Crews e471465d39 Merge pull request #104370 from BrotherShort/no-arrow-no-root-offset
Tree: Fix offset relationship lines with Hide Folding
2025-03-30 09:06:02 -05:00
Thaddeus Crews bc5c739ff8 Merge pull request #104708 from Alex2782/tree_cleanup
`Tree`: apply comment style guidelines and remove unused variables.
2025-03-30 09:06:00 -05:00
Thaddeus Crews ba3482926d Merge pull request #104444 from Delsin-Yu/fix-disabled-recursive-behavior-not-applied-on-ready
[GUI] Fix reparenting control does not update recursive mode cache properly
2025-03-29 10:16:35 -05:00
DE YU 04608fae4a [GUI] Fix an issue where setting a control's recursive mode to disabled does not work on ready. 2025-03-29 06:34:11 +08:00
Alexander Hartmann b96e8d5886 Tree: apply comment style guidelines and remove unused variables.
Co-Authored-By: Tomasz Chabora <2223172+KoBeWi@users.noreply.github.com>
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-03-28 18:03:39 +01:00
Rémi Verschelde 1a367f3a68 Merge pull request #104685 from bruvzg/rtl_vpad
[RTL] Improve vertical padding.
2025-03-28 17:30:44 +01:00
Rémi Verschelde 3b90bb56ad Merge pull request #89782 from KoBeWi/stdArrayList
Use initializer list in Arrays
2025-03-28 17:29:40 +01:00
BrotherShort f660cdb7cf Tree: Fix offset relationship lines with Hide Folding 2025-03-28 15:05:24 +01:00
Rémi Verschelde ca1f445403 Merge pull request #104662 from bruvzg/tab_pad_size
[RTL] Fix size/alignment of tables with padded cells.
2025-03-28 14:33:38 +01:00
Rémi Verschelde f4425aecdf Merge pull request #104638 from beicause/fix-ci-regression-test-project
CI: Fix godot regression project test
2025-03-28 14:33:30 +01:00
Rémi Verschelde 0251fc4476 Merge pull request #104399 from scgm0/Improve-Popup-content_scale_factor
Improve Popup `content_scale_factor`
2025-03-28 14:32:58 +01:00
Rémi Verschelde 1116fc7b0f Merge pull request #104201 from BrotherShort/folding-move-to-2nd-col
Fix folding arrow and relationship lines move to 2nd column.
2025-03-28 14:32:35 +01:00
Rémi Verschelde 1f127770fc Merge pull request #103943 from dugramen/scroll-while-dragging
Scroll `EditorInspector` while drag & drop hovering near the edges
2025-03-28 14:32:20 +01:00