Fix non-embedded Windows resizing to match Viewport content scale factor

This commit is contained in:
Koyper
2023-12-27 10:19:52 -06:00
parent 30e71782af
commit 0881c81c13
5 changed files with 52 additions and 23 deletions

View File

@ -3995,12 +3995,14 @@ bool Tree::edit_selected(bool p_force_edit) {
return false;
}
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 = s->get_meta("__focus_col_" + itos(selected_col));
} else {
rect = s->get_meta("__focus_rect");
}
rect.position *= popup_scale;
popup_edited_item = s;
popup_edited_item_col = col;
@ -4043,7 +4045,7 @@ bool Tree::edit_selected(bool p_force_edit) {
popup_rect.size = rect.size;
// Account for icon.
Size2 icon_size = _get_cell_icon_size(c);
Size2 icon_size = _get_cell_icon_size(c) * popup_scale;
popup_rect.position.x += icon_size.x;
popup_rect.size.x -= icon_size.x;
@ -4070,7 +4072,10 @@ bool Tree::edit_selected(bool p_force_edit) {
}
popup_editor->set_position(popup_rect.position);
popup_editor->set_size(popup_rect.size);
popup_editor->set_size(popup_rect.size * popup_scale);
if (!popup_editor->is_embedded()) {
popup_editor->set_content_scale_factor(popup_scale);
}
popup_editor->popup();
popup_editor->child_controls_changed();
@ -4086,7 +4091,10 @@ bool Tree::edit_selected(bool p_force_edit) {
text_editor->show();
popup_editor->set_position(get_screen_position() + rect.position);
popup_editor->set_size(rect.size);
popup_editor->set_size(rect.size * popup_scale);
if (!popup_editor->is_embedded()) {
popup_editor->set_content_scale_factor(popup_scale);
}
popup_editor->popup();
popup_editor->child_controls_changed();