From a531051a61300d6ea7e04b003d72d9e591bbfe3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 24 Mar 2017 18:23:48 +0100 Subject: [PATCH] Only assume HiDPI mode if DPI >= 192 and width > 2000 Also use single-dock column if width < 1200. Manually adapted from bfe67a3b87ada532d27df015141af8eb6091ef89 and c103f32ea3b19c3588d54dcef98e307f8b823f4c. Fixes #6096. --- editor/editor_node.cpp | 21 ++++++++++++++++++--- editor/project_manager.cpp | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index e11778d6178..2eafea23dba 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -5088,7 +5088,7 @@ EditorNode::EditorNode() { { int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode"); if (dpi_mode == 0) { - editor_set_hidpi(OS::get_singleton()->get_screen_dpi(0) > 150); + editor_set_hidpi(OS::get_singleton()->get_screen_dpi(0) >= 192 && OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x > 2000); } else if (dpi_mode == 2) { editor_set_hidpi(true); } else { @@ -5875,14 +5875,29 @@ EditorNode::EditorNode() { prop_editor_base->add_child(property_editor); property_editor->set_undo_redo(&editor_data.get_undo_redo()); + bool use_single_dock_column = OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x < 1200; + node_dock = memnew(NodeDock); //node_dock->set_undoredo(&editor_data.get_undo_redo()); - dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock); + if (use_single_dock_column) { + dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(node_dock); + } else { + dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock); + } filesystem_dock = memnew(FileSystemDock(this)); filesystem_dock->set_name(TTR("FileSystem")); filesystem_dock->set_display_mode(int(EditorSettings::get_singleton()->get("filesystem_dock/display_mode"))); - dock_slot[DOCK_SLOT_LEFT_UR]->add_child(filesystem_dock); + + if (use_single_dock_column) { + dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(filesystem_dock); + left_r_vsplit->hide(); + dock_slot[DOCK_SLOT_LEFT_UR]->hide(); + dock_slot[DOCK_SLOT_LEFT_BR]->hide(); + } else { + dock_slot[DOCK_SLOT_LEFT_UR]->add_child(filesystem_dock); + } + //prop_pallete->add_child(filesystem_dock); filesystem_dock->connect("open", this, "open_request"); filesystem_dock->connect("instance", this, "_instance_request"); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 9502b0af0c2..66f1d9ec236 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -1180,7 +1180,7 @@ ProjectManager::ProjectManager() { { int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode"); if (dpi_mode == 0) { - editor_set_hidpi(OS::get_singleton()->get_screen_dpi(0) > 150); + editor_set_hidpi(OS::get_singleton()->get_screen_dpi(0) >= 192 && OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x > 2000); } else if (dpi_mode == 2) { editor_set_hidpi(true); } else {