Commit Graph

16889 Commits

Author SHA1 Message Date
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
c5c1cd4440 Merge pull request #105453 from reduz/signals-thread-safe
Add thread safety to Object signals
2025-04-16 15:39:22 -05:00
4d55d9865b Merge pull request #105304 from KoBeWi/≥
Fix `exp_edit` description
2025-04-16 15:39:21 -05:00
3c0652699a Merge pull request #103967 from HolonProduction/window-focus
GUI: Fix focus cycle through window
2025-04-16 10:45:17 -05:00
11cb8140b8 Merge pull request #105370 from yuantianle/fix-graphnodes-connected-to-headers-rather-than-ports
Fix GraphNode frag/vert port positions misaligned
2025-04-16 10:45:16 -05:00
7d4ba0759c Merge pull request #105322 from bruvzg/remove_dbg_draw
Remove debug focus rect draws from MenuBar and GraphNode.
2025-04-16 10:45:12 -05:00
00bd421089 Merge pull request #105222 from kitbdev/fix-mouse-filter-recursive-and-rename
Fix and rename mouse filter recursive behavior and focus mode recursive behavior
2025-04-16 10:45:12 -05:00
2f39d8ebef Add thread safety to Object signals
* It turns out the majority of this work was done already by AThousandShips as part of #89451. This allows to do lock-less emitting of signals.
* This means, that only the signal map needs to be protected, making the task simple and without risk of deadlocks, or affecting performance.
* Objects can choose to not protect signals for performance (as example Node uses thread guards for protection, so these signals are not thread safe).
2025-04-16 17:14:44 +02:00
6e1fb68f65 Fix GraphNode frag/vert port positions misaligned
Issue conclusion: GraphNode port connections appear misaligned when switching between vertex and fragment modes, only realigning after zoom or layout refresh.

Investigation: The root cause was due to port positions being calculated before child layouts had finalized, resulting in inaccurate Y positions for ports. The original implementation relied on Control::position.y, which was not yet updated during the initial layout pass.

Explaination: This fix computes vertical offset using titlebar and stylebox sizes instead, ensuring port alignment is correct immediately after layout, without relying on zoom-triggered re-layouts.

Resolves: #105232

Add layout mode check to distinguish GraphEditor and ShaderGraphEditor

Fix port position calculation by distinguishing between GraphEditor and ShaderGraphEditor layouts.

Due to differences in layout flow and update timing (CPU vs GPU), ShaderGraphEditor requires manual vertical offset calculation, while standard GraphEditor can directly get the actual child positions after layout in run time.

This change adds a layout mode check (`is_using_resort_layout) to determine the appropriate method for computing port positions.

Fixed nits using cached values and removed redundant condition variable definition.

Add comment for the condition checking.
2025-04-15 14:25:05 -07:00
6b9641d364 Fix focus cycle through window 2025-04-15 20:24:32 +02:00
039d9ffd30 Merge pull request #104317 from pafuent/fixing_wrong_focus_style_clipping_on_scroll_container
Fix `ScrollContainer` focus border issue
2025-04-15 12:28:50 -05:00
c6341f49a1 Merge pull request #105337 from L2750558108/pr-fix-duplicate-in-node
Replace duplicate code of `is_ancestor_of()` in node.cpp
2025-04-15 12:28:49 -05:00
aba5841b34 Merge pull request #105323 from bruvzg/rtl_right_trim
[RTL] Fix VC_GLYPHS_RTL visible character trimming mode.
2025-04-15 12:28:48 -05:00
0737ebeb17 Merge pull request #105409 from timoschwarzer/fix/typo-oversampling
Fix typo ovrsampling → oversampling
2025-04-15 12:28:43 -05:00
5f6c49af96 Merge pull request #104349 from jaydensipe/scroll-high-refresh-rate-fix
Fix smooth scrolling being tied to physics process
2025-04-15 12:28:38 -05:00
d0aa95a6d4 Fix typo ovrsampling → oversampling 2025-04-15 11:21:51 +02:00
f56a4d4fe4 Merge pull request #105138 from stuartcarnie/fix_hangs
Renderer: Reduce scope of mutex locks to prevent common deadlocks
2025-04-14 19:39:47 -05:00
866d59d216 Merge pull request #105264 from clayjohn/primitive-mesh-optimize
Optimize PrimitiveMesh creation by avoiding CoW behavior and dynamic memory allocations
2025-04-14 19:39:46 -05:00
4cc419f6e6 Merge pull request #105259 from bruvzg/rtl_track_custom_font_changes
[RTL] Track external changes in the custom fonts set by BBCode / `push_*`.
2025-04-14 19:39:45 -05:00
e1384dd159 Fix ScrollContainer focus border issue
Fixes #100176

Instead of using no clipping technique to draw the focus border because
it causes problems if a `ScrollContainer` is nested in another
`ScrollContainer`, now the focus border is drawn using an internal
`PanelContainer`.
2025-04-14 17:51:43 -03:00
4afeca3bcf Replace global oversampling with overrideable per-viewport oversampling. 2025-04-14 13:43:09 +03:00
3c745c0315 Replace duplicate code of is_ancestor_of in node.cpp 2025-04-13 14:05:21 +08:00
09282c316a Renderer: Reduce scope of mutex locks to prevent common deadlocks
Fixes #102877
2025-04-13 06:56:13 +10:00
d782d827f7 [RTL] Fix VC_GLYPHS_RTL visible character trimming mode. 2025-04-12 21:13:19 +03:00
5688d30439 Remove debug focus rect draws from MenuBar and GraphNode. 2025-04-12 21:05:18 +03:00
23a0b7d4d0 Fix exp_edit description 2025-04-12 11:49:26 +02:00
292119dd68 Fix smooth scrolling tied to physics process 2025-04-11 17:14:25 -04:00
addab4f001 Merge pull request #95916 from Repiteo/core/bit-field
Core: Add dedicated `BitField` template
2025-04-11 13:29:13 -05:00
0d267e7b1e Core: Add dedicated BitField template 2025-04-11 11:53:26 -05:00
b711d72e8f Remove unnecessary friend class declarations of CowData.
Use default implementations for various containers.
2025-04-11 18:26:08 +02:00
9b6f9e5701 Optimize PrimitiveMesh _create_mesh_array function by avoiding CoW behavior and dynamic memory allocations 2025-04-11 09:04:44 -07:00
b546680e96 Merge pull request #105265 from bruvzg/gr_node_resize
Fix graph node resizing.
2025-04-11 09:51:10 -05:00
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
13cf88073b Fix graph node resizing. 2025-04-11 08:20:20 +03:00
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
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
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
1ddd503213 [RTL] Track external changes in the custom fonts set by BBCode / push_*. 2025-04-11 00:10:45 +03:00
bf963e767e Add Options, Functions and Settings to convert Node-Names and Strings to kebab-case
- refactored and renamed String::_camelcase_to_underscore to String:_separate_compound_words
- refactored String::to_snake_case to work with the refactored String::_separate_compound_words
- created char_utils::is_hyphen to catch all hyphen variants in kebab-case conversion
- created String::to_kebab_case using the new String::_separate_compound_words
- created corresponding Documentation in String and StringName
- simplified both switch statements in EditorNode and ProjectDialog
- added new kebab-casing Option for Node Names in ProjectSettings
- added missing camelCase Options to Scene- and Node-Names in ProjectSettings
- simplified Mono RuntimeInterop Functions
- hooked up the ConnectionsDialog
- created additional Unit Tests
2025-04-10 21:22:21 +02:00
819bb61710 Merge pull request #103198 from Naputt1/fix-tween.kill()-isValid()-return-false
Fix `Tween.is_valid()` returning `true` after calling `kill()`
2025-04-10 10:18:21 -05:00
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
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
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
504036466b Merge pull request #102878 from Giganzo/tree-jiggle
Fix Tree buttons jiggle on horizontal scrolling
2025-04-10 10:18:11 -05:00
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
aa0ade5b49 [TextEdit / LineEdit] Add support for OEM Alt codes input. 2025-04-10 08:52:19 +03:00
kit
d16e8b7ca4 Fix and rename mouse filter recursive behavior
and focus mode recursive behavior.
2025-04-09 23:45:03 -04:00
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
6e0af7d083 Merge pull request #105005 from beicause/pctex-fix-basis-crash
PortableCompressedTexture: Fix BasisU crash and wrong format
2025-04-09 18:11:57 -05:00
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