summaryrefslogtreecommitdiffstats
path: root/scene/gui/tree.cpp
diff options
context:
space:
mode:
authorYuri Sizov <yuris@humnom.net>2024-01-22 20:39:29 +0100
committerYuri Sizov <yuris@humnom.net>2024-01-22 20:39:29 +0100
commitfc25ff021af3dcdfc2647c7f1543b71381afb90c (patch)
tree02aa68c3c2668e4f2714b240651bb41212a23d12 /scene/gui/tree.cpp
parent6e43921fbe47bdc35f416bb77f61f051fb475072 (diff)
parent552594ffdcca599bf5d44a8b61f9a940ccab38e5 (diff)
downloadredot-engine-fc25ff021af3dcdfc2647c7f1543b71381afb90c.tar.gz
Merge pull request #87415 from AThousandShips/tree_font
Redraw `TreeItem` on more changes
Diffstat (limited to 'scene/gui/tree.cpp')
-rw-r--r--scene/gui/tree.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index c67c3cd98d..11d5a01908 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -590,6 +590,8 @@ void TreeItem::set_custom_draw(int p_column, Object *p_object, const StringName
cells.write[p_column].custom_draw_obj = p_object->get_instance_id();
cells.write[p_column].custom_draw_callback = p_callback;
+
+ _changed_notify(p_column);
}
void TreeItem::set_collapsed(bool p_collapsed) {
@@ -1306,8 +1308,14 @@ void TreeItem::clear_custom_color(int p_column) {
void TreeItem::set_custom_font(int p_column, const Ref<Font> &p_font) {
ERR_FAIL_INDEX(p_column, cells.size());
+ if (cells[p_column].custom_font == p_font) {
+ return;
+ }
+
cells.write[p_column].custom_font = p_font;
cells.write[p_column].cached_minimum_size_dirty = true;
+
+ _changed_notify(p_column);
}
Ref<Font> TreeItem::get_custom_font(int p_column) const {
@@ -1318,8 +1326,14 @@ Ref<Font> TreeItem::get_custom_font(int p_column) const {
void TreeItem::set_custom_font_size(int p_column, int p_font_size) {
ERR_FAIL_INDEX(p_column, cells.size());
+ if (cells[p_column].custom_font_size == p_font_size) {
+ return;
+ }
+
cells.write[p_column].custom_font_size = p_font_size;
cells.write[p_column].cached_minimum_size_dirty = true;
+
+ _changed_notify(p_column);
}
int TreeItem::get_custom_font_size(int p_column) const {
@@ -1368,8 +1382,14 @@ Color TreeItem::get_custom_bg_color(int p_column) const {
void TreeItem::set_custom_as_button(int p_column, bool p_button) {
ERR_FAIL_INDEX(p_column, cells.size());
+ if (cells[p_column].custom_button == p_button) {
+ return;
+ }
+
cells.write[p_column].custom_button = p_button;
cells.write[p_column].cached_minimum_size_dirty = true;
+
+ _changed_notify(p_column);
}
bool TreeItem::is_custom_set_as_button(int p_column) const {