summaryrefslogtreecommitdiff
path: root/scene/3d/spatial.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/3d/spatial.cpp')
-rw-r--r--scene/3d/spatial.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/scene/3d/spatial.cpp b/scene/3d/spatial.cpp
index 13094300d0..d304095d33 100644
--- a/scene/3d/spatial.cpp
+++ b/scene/3d/spatial.cpp
@@ -438,8 +438,12 @@ Ref<SpatialGizmo> Spatial::get_gizmo() const {
void Spatial::_update_gizmo() {
data.gizmo_dirty=false;
- if (data.gizmo.is_valid())
- data.gizmo->redraw();
+ if (data.gizmo.is_valid()) {
+ if (is_visible())
+ data.gizmo->redraw();
+ else
+ data.gizmo->clear();
+ }
}
@@ -511,6 +515,10 @@ void Spatial::_propagate_visibility_changed() {
notification(NOTIFICATION_VISIBILITY_CHANGED);
emit_signal(SceneStringNames::get_singleton()->visibility_changed);
_change_notify("visibility/visible");
+#ifdef TOOLS_ENABLED
+ if (data.gizmo.is_valid())
+ _update_gizmo();
+#endif
for (List<Spatial*>::Element*E=data.children.front();E;E=E->next()) {