summaryrefslogtreecommitdiff
path: root/scene/main
diff options
context:
space:
mode:
authorNinni Pipping <ninni.pipping@gmail.com>2023-01-26 13:17:26 +0100
committerNinni Pipping <ninni.pipping@gmail.com>2023-01-30 08:22:06 +0100
commitbbf203bc32aae88dfc9f527db44856709572e2f1 (patch)
tree68f1a25a1d59793d84c3da9010c21c552dbb4afa /scene/main
parentcc7aa72f01fdea5f93b0a618fcd12db55617beb0 (diff)
Hide clip_children for non-drawn CanvasItems
Diffstat (limited to 'scene/main')
-rw-r--r--scene/main/canvas_item.cpp6
-rw-r--r--scene/main/canvas_item.h4
2 files changed, 10 insertions, 0 deletions
diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp
index 7b0554442c..306b990561 100644
--- a/scene/main/canvas_item.cpp
+++ b/scene/main/canvas_item.cpp
@@ -927,6 +927,12 @@ void CanvasItem::force_update_transform() {
notification(NOTIFICATION_TRANSFORM_CHANGED);
}
+void CanvasItem::_validate_property(PropertyInfo &p_property) const {
+ if (hide_clip_children && p_property.name == "clip_children") {
+ p_property.usage = PROPERTY_USAGE_NONE;
+ }
+}
+
void CanvasItem::_bind_methods() {
ClassDB::bind_method(D_METHOD("_top_level_raise_self"), &CanvasItem::_top_level_raise_self);
diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h
index 644fe856ec..1c84ea338a 100644
--- a/scene/main/canvas_item.h
+++ b/scene/main/canvas_item.h
@@ -106,6 +106,7 @@ private:
bool use_parent_material = false;
bool notify_local_transform = false;
bool notify_transform = false;
+ bool hide_clip_children = false;
ClipChildrenMode clip_children_mode = CLIP_CHILDREN_DISABLED;
@@ -155,6 +156,9 @@ protected:
void _notification(int p_what);
static void _bind_methods();
+ void _validate_property(PropertyInfo &p_property) const;
+
+ _FORCE_INLINE_ void set_hide_clip_children(bool p_value) { hide_clip_children = p_value; }
GDVIRTUAL0(_draw)
public: