mirror of
https://github.com/godotengine/godot.git
synced 2024-11-28 15:12:33 +00:00
Fix get_position_with_decorations
and get_size_with_decorations
for embedded windows.
This commit is contained in:
parent
b7feebefab
commit
64d789aba7
@ -118,12 +118,14 @@
|
|||||||
<return type="Vector2i" />
|
<return type="Vector2i" />
|
||||||
<description>
|
<description>
|
||||||
Returns the window's position including its border.
|
Returns the window's position including its border.
|
||||||
|
[b]Note:[/b] If [member visible] is [code]false[/code], this method returns the same value as [member position].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="get_size_with_decorations" qualifiers="const">
|
<method name="get_size_with_decorations" qualifiers="const">
|
||||||
<return type="Vector2i" />
|
<return type="Vector2i" />
|
||||||
<description>
|
<description>
|
||||||
Returns the window's size including its border.
|
Returns the window's size including its border.
|
||||||
|
[b]Note:[/b] If [member visible] is [code]false[/code], this method returns the same value as [member size].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="get_theme_color" qualifiers="const">
|
<method name="get_theme_color" qualifiers="const">
|
||||||
|
@ -397,6 +397,16 @@ Point2i Window::get_position_with_decorations() const {
|
|||||||
if (window_id != DisplayServer::INVALID_WINDOW_ID) {
|
if (window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||||
return DisplayServer::get_singleton()->window_get_position_with_decorations(window_id);
|
return DisplayServer::get_singleton()->window_get_position_with_decorations(window_id);
|
||||||
}
|
}
|
||||||
|
if (visible && is_embedded() && !get_flag(Window::FLAG_BORDERLESS)) {
|
||||||
|
Size2 border_offset;
|
||||||
|
if (theme_cache.embedded_border.is_valid()) {
|
||||||
|
border_offset = theme_cache.embedded_border->get_offset();
|
||||||
|
}
|
||||||
|
if (theme_cache.embedded_unfocused_border.is_valid()) {
|
||||||
|
border_offset = border_offset.max(theme_cache.embedded_unfocused_border->get_offset());
|
||||||
|
}
|
||||||
|
return position - border_offset;
|
||||||
|
}
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,6 +415,16 @@ Size2i Window::get_size_with_decorations() const {
|
|||||||
if (window_id != DisplayServer::INVALID_WINDOW_ID) {
|
if (window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||||
return DisplayServer::get_singleton()->window_get_size_with_decorations(window_id);
|
return DisplayServer::get_singleton()->window_get_size_with_decorations(window_id);
|
||||||
}
|
}
|
||||||
|
if (visible && is_embedded() && !get_flag(Window::FLAG_BORDERLESS)) {
|
||||||
|
Size2 border_size;
|
||||||
|
if (theme_cache.embedded_border.is_valid()) {
|
||||||
|
border_size = theme_cache.embedded_border->get_minimum_size();
|
||||||
|
}
|
||||||
|
if (theme_cache.embedded_unfocused_border.is_valid()) {
|
||||||
|
border_size = border_size.max(theme_cache.embedded_unfocused_border->get_minimum_size());
|
||||||
|
}
|
||||||
|
return size + border_size;
|
||||||
|
}
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user