@@ -2402,11 +2402,11 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
24022402 }
24032403 }
24042404
2405- 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 " )) {
2405+ 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 ( )) {
24062406 Rect2i r = cell_rect;
24072407
24082408 if (select_mode != SELECT_ROW) {
2409- p_item->set_meta ( " __focus_rect " , Rect2 (r.position , r.size ) );
2409+ p_item->focus_rect = Rect2 (r.position , r.size );
24102410 r = convert_rtl_rect (r);
24112411 if (p_item->cells [i].selected ) {
24122412 if (is_cell_hovered) {
@@ -2424,7 +2424,7 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
24242424 }
24252425 }
24262426 } else {
2427- p_item->set_meta ( " __focus_col_ " + itos (i), Rect2 (r.position , r.size ) );
2427+ p_item->cells . write [i]. focus_rect = Rect2 (r.position , r.size );
24282428 }
24292429 }
24302430
@@ -4483,9 +4483,9 @@ bool Tree::edit_selected(bool p_force_edit) {
44834483Rect2 Tree::_get_item_focus_rect (const TreeItem *p_item) const {
44844484 Rect2 rect;
44854485 if (select_mode == SELECT_ROW) {
4486- rect = p_item->get_meta ( " __focus_col_ " + itos ( selected_col)) ;
4486+ rect = p_item->cells [ selected_col]. focus_rect ;
44874487 } else {
4488- rect = p_item->get_meta ( " __focus_rect " ) ;
4488+ rect = p_item->focus_rect ;
44894489 }
44904490 return rect;
44914491}
@@ -4691,9 +4691,9 @@ void Tree::_accessibility_action_edit_custom(const Variant &p_data, TreeItem *p_
46914691 float popup_scale = popup_editor->is_embedded () ? 1.0 : popup_editor->get_parent_visible_window ()->get_content_scale_factor ();
46924692 Rect2 rect;
46934693 if (select_mode == SELECT_ROW) {
4694- rect = p_item->get_meta ( " __focus_col_ " + itos ( p_col)) ;
4694+ rect = p_item->cells [ p_col]. focus_rect ;
46954695 } else {
4696- rect = p_item->get_meta ( " __focus_rect " ) ;
4696+ rect = p_item->focus_rect ;
46974697 }
46984698 rect.position *= popup_scale;
46994699
0 commit comments