From 094073e4b22344c4b969d55850c7927e569bfd43 Mon Sep 17 00:00:00 2001 From: Andreas Haas Date: Tue, 11 Oct 2016 11:31:25 +0200 Subject: [PATCH] Refresh TextureRegionEditor when region has been changed externally. Now the TextureRegionEditor updates when you change the region_rect either via the inspector or via undo/redo. Fixes #6772 --- tools/editor/plugins/texture_region_editor_plugin.cpp | 7 +++++++ tools/editor/plugins/texture_region_editor_plugin.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/tools/editor/plugins/texture_region_editor_plugin.cpp b/tools/editor/plugins/texture_region_editor_plugin.cpp index 43086fb208d..6b918e6e8f9 100644 --- a/tools/editor/plugins/texture_region_editor_plugin.cpp +++ b/tools/editor/plugins/texture_region_editor_plugin.cpp @@ -653,6 +653,7 @@ void TextureRegionEditor::edit(Object *p_obj) } else { p_obj->connect("texture_changed",this,"_edit_region"); } + p_obj->add_change_receptor(this); p_obj->connect("exit_tree",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT); _edit_region(); } else { @@ -673,6 +674,12 @@ void TextureRegionEditor::edit(Object *p_obj) edit_draw->update(); } +void TextureRegionEditor::_changed_callback(Object *p_changed, const char *p_prop) { + if ((String)p_prop == "region_rect") { + _edit_region(); + } +} + void TextureRegionEditor::_edit_region() { Ref texture = NULL; diff --git a/tools/editor/plugins/texture_region_editor_plugin.h b/tools/editor/plugins/texture_region_editor_plugin.h index 3658a38f111..f0bb7c9bc2d 100644 --- a/tools/editor/plugins/texture_region_editor_plugin.h +++ b/tools/editor/plugins/texture_region_editor_plugin.h @@ -116,6 +116,8 @@ protected: Vector2 snap_point(Vector2 p_target) const; + virtual void _changed_callback(Object *p_changed, const char *p_prop); + public: void _edit_region();