Make NinePatchRect listen to texture changes
This commit is contained in:
@ -30,6 +30,7 @@
|
||||
|
||||
#include "nine_patch_rect.h"
|
||||
|
||||
#include "core/core_string_names.h"
|
||||
#include "scene/scene_string_names.h"
|
||||
#include "servers/rendering_server.h"
|
||||
|
||||
@ -89,11 +90,26 @@ void NinePatchRect::_bind_methods() {
|
||||
BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_TILE_FIT);
|
||||
}
|
||||
|
||||
void NinePatchRect::_texture_changed() {
|
||||
queue_redraw();
|
||||
update_minimum_size();
|
||||
}
|
||||
|
||||
void NinePatchRect::set_texture(const Ref<Texture2D> &p_tex) {
|
||||
if (texture == p_tex) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (texture.is_valid()) {
|
||||
texture->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &NinePatchRect::_texture_changed));
|
||||
}
|
||||
|
||||
texture = p_tex;
|
||||
|
||||
if (texture.is_valid()) {
|
||||
texture->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &NinePatchRect::_texture_changed));
|
||||
}
|
||||
|
||||
queue_redraw();
|
||||
update_minimum_size();
|
||||
emit_signal(SceneStringNames::get_singleton()->texture_changed);
|
||||
|
||||
Reference in New Issue
Block a user