summaryrefslogtreecommitdiffstats
path: root/editor/project_manager.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-11-16 16:36:10 +0100
committerGitHub <noreply@github.com>2020-11-16 16:36:10 +0100
commitd191ffe647b5074bd939f6289957f1610159a31d (patch)
tree4c2e23b004ea19353f38341a4172dad300f20ad4 /editor/project_manager.cpp
parentefe3eaf6a4439189ad14d788e035ec8059853ece (diff)
parentc1a65e52896ae060881bba929dd4a7ff824139b9 (diff)
downloadredot-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.cpp20
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