diff options
author | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2022-12-08 19:50:59 +0100 |
---|---|---|
committer | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2022-12-08 19:52:48 +0100 |
commit | 080b6ac1ae93c403252ffe159212c504037ffd89 (patch) | |
tree | e288f7da52066bcc4b2220c487c55917350dbf21 /scene/2d | |
parent | cf093f8e47f9508565cdc52bb724dbdb3d548e90 (diff) |
Fix BackBufferCopy `rect` property appearing when not relevant in inspector
The `rect` property is only effective if `copy_mode` is Rect.
Diffstat (limited to 'scene/2d')
-rw-r--r-- | scene/2d/back_buffer_copy.cpp | 7 | ||||
-rw-r--r-- | scene/2d/back_buffer_copy.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/scene/2d/back_buffer_copy.cpp b/scene/2d/back_buffer_copy.cpp index aa4ae01fd9..9c332123e3 100644 --- a/scene/2d/back_buffer_copy.cpp +++ b/scene/2d/back_buffer_copy.cpp @@ -71,12 +71,19 @@ Rect2 BackBufferCopy::get_rect() const { void BackBufferCopy::set_copy_mode(CopyMode p_mode) { copy_mode = p_mode; _update_copy_mode(); + notify_property_list_changed(); } BackBufferCopy::CopyMode BackBufferCopy::get_copy_mode() const { return copy_mode; } +void BackBufferCopy::_validate_property(PropertyInfo &p_property) const { + if (copy_mode != COPY_MODE_RECT && p_property.name == "rect") { + p_property.usage = PROPERTY_USAGE_NO_EDITOR; + } +} + void BackBufferCopy::_bind_methods() { ClassDB::bind_method(D_METHOD("set_rect", "rect"), &BackBufferCopy::set_rect); ClassDB::bind_method(D_METHOD("get_rect"), &BackBufferCopy::get_rect); diff --git a/scene/2d/back_buffer_copy.h b/scene/2d/back_buffer_copy.h index 1f2d5810b0..caacbc83c6 100644 --- a/scene/2d/back_buffer_copy.h +++ b/scene/2d/back_buffer_copy.h @@ -51,6 +51,7 @@ private: protected: static void _bind_methods(); + void _validate_property(PropertyInfo &p_property) const; public: #ifdef TOOLS_ENABLED |