You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-02 16:48:55 +00:00
Merge pull request #109938 from KoBeWi/fokoos_rekto
Remove meta usage in Tree
This commit is contained in:
@@ -2402,11 +2402,11 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
|
||||
}
|
||||
}
|
||||
|
||||
if ((select_mode == SELECT_ROW && selected_item == p_item) || (select_mode == SELECT_MULTI && selected_item == p_item && selected_col == i) || p_item->cells[i].selected || !p_item->has_meta("__focus_rect")) {
|
||||
if ((select_mode == SELECT_ROW && selected_item == p_item) || (select_mode == SELECT_MULTI && selected_item == p_item && selected_col == i) || p_item->cells[i].selected || !p_item->focus_rect.has_area()) {
|
||||
Rect2i r = cell_rect;
|
||||
|
||||
if (select_mode != SELECT_ROW) {
|
||||
p_item->set_meta("__focus_rect", Rect2(r.position, r.size));
|
||||
p_item->focus_rect = Rect2(r.position, r.size);
|
||||
r = convert_rtl_rect(r);
|
||||
if (p_item->cells[i].selected) {
|
||||
if (is_cell_hovered) {
|
||||
@@ -2424,7 +2424,7 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
|
||||
}
|
||||
}
|
||||
} else {
|
||||
p_item->set_meta("__focus_col_" + itos(i), Rect2(r.position, r.size));
|
||||
p_item->cells.write[i].focus_rect = Rect2(r.position, r.size);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4483,9 +4483,9 @@ bool Tree::edit_selected(bool p_force_edit) {
|
||||
Rect2 Tree::_get_item_focus_rect(const TreeItem *p_item) const {
|
||||
Rect2 rect;
|
||||
if (select_mode == SELECT_ROW) {
|
||||
rect = p_item->get_meta("__focus_col_" + itos(selected_col));
|
||||
rect = p_item->cells[selected_col].focus_rect;
|
||||
} else {
|
||||
rect = p_item->get_meta("__focus_rect");
|
||||
rect = p_item->focus_rect;
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
@@ -4691,9 +4691,9 @@ void Tree::_accessibility_action_edit_custom(const Variant &p_data, TreeItem *p_
|
||||
float popup_scale = popup_editor->is_embedded() ? 1.0 : popup_editor->get_parent_visible_window()->get_content_scale_factor();
|
||||
Rect2 rect;
|
||||
if (select_mode == SELECT_ROW) {
|
||||
rect = p_item->get_meta("__focus_col_" + itos(p_col));
|
||||
rect = p_item->cells[p_col].focus_rect;
|
||||
} else {
|
||||
rect = p_item->get_meta("__focus_rect");
|
||||
rect = p_item->focus_rect;
|
||||
}
|
||||
rect.position *= popup_scale;
|
||||
|
||||
|
||||
@@ -100,6 +100,7 @@ private:
|
||||
Color icon_color = Color(1, 1, 1);
|
||||
Ref<StyleBox> custom_stylebox;
|
||||
|
||||
Rect2 focus_rect;
|
||||
Size2i cached_minimum_size;
|
||||
bool cached_minimum_size_dirty = true;
|
||||
|
||||
@@ -139,6 +140,7 @@ private:
|
||||
|
||||
Vector<Cell> cells;
|
||||
|
||||
Rect2 focus_rect;
|
||||
bool collapsed = false; // Won't show children.
|
||||
bool visible = true;
|
||||
bool parent_visible_in_tree = true;
|
||||
|
||||
Reference in New Issue
Block a user