diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-11-16 16:36:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-16 16:36:10 +0100 |
commit | d191ffe647b5074bd939f6289957f1610159a31d (patch) | |
tree | 4c2e23b004ea19353f38341a4172dad300f20ad4 /editor/project_manager.cpp | |
parent | efe3eaf6a4439189ad14d788e035ec8059853ece (diff) | |
parent | c1a65e52896ae060881bba929dd4a7ff824139b9 (diff) | |
download | redot-engine-d191ffe647b5074bd939f6289957f1610159a31d.tar.gz |
Merge pull request #43479 from Calinou/use-low-editor-scale-auto
Use 75% editor scale on small displays automatically
Diffstat (limited to 'editor/project_manager.cpp')
-rw-r--r-- | editor/project_manager.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index b67a134549..167cd3ac35 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -2366,12 +2366,24 @@ ProjectManager::ProjectManager() { switch (display_scale) { case 0: { - // Try applying a suitable display scale automatically + // Try applying a suitable display scale automatically. #ifdef OSX_ENABLED editor_set_scale(DisplayServer::get_singleton()->screen_get_max_scale()); #else const int screen = DisplayServer::get_singleton()->window_get_current_screen(); - editor_set_scale(DisplayServer::get_singleton()->screen_get_dpi(screen) >= 192 && DisplayServer::get_singleton()->screen_get_size(screen).x > 2000 ? 2.0 : 1.0); + float scale; + if (DisplayServer::get_singleton()->screen_get_dpi(screen) >= 192 && DisplayServer::get_singleton()->screen_get_size(screen).y >= 1400) { + // hiDPI display. + scale = 2.0; + } else if (DisplayServer::get_singleton()->screen_get_size(screen).y <= 800) { + // Small loDPI display. Use a smaller display scale so that editor elements fit more easily. + // Icons won't look great, but this is better than having editor elements overflow from its window. + scale = 0.75; + } else { + scale = 1.0; + } + + editor_set_scale(scale); #endif } break; @@ -2393,9 +2405,9 @@ ProjectManager::ProjectManager() { case 6: editor_set_scale(2.0); break; - default: { + default: editor_set_scale(EditorSettings::get_singleton()->get("interface/editor/custom_display_scale")); - } break; + break; } // Define a minimum window size to prevent UI elements from overlapping or being cut off |