diff options
Diffstat (limited to 'editor/editor_settings.cpp')
-rw-r--r-- | editor/editor_settings.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index cec50ac30f..c019d46034 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -400,6 +400,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // Editor EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/editor/localize_settings", true, "") + EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/dock_tab_style", 0, "Text Only,Icon Only,Text and Icon") EDITOR_SETTING_USAGE(Variant::INT, PROPERTY_HINT_ENUM, "interface/editor/ui_layout_direction", 0, "Based on Application Locale,Left-to-Right,Right-to-Left,Based on System Locale", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) // Display what the Auto display scale setting effectively corresponds to. @@ -691,7 +692,6 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d/selection_box_color", Color(1.0, 0.5, 0), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d_gizmos/gizmo_colors/instantiated", Color(0.7, 0.7, 0.7, 0.6), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) - EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) EDITOR_SETTING_USAGE(Variant::COLOR, PROPERTY_HINT_NONE, "editors/3d_gizmos/gizmo_colors/aabb", Color(0.28, 0.8, 0.82), "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED) // If a line is a multiple of this, it uses the primary grid color. @@ -970,7 +970,7 @@ bool EditorSettings::_save_text_editor_theme(const String &p_file) { keys.sort(); for (const String &key : keys) { - if (key.begins_with("text_editor/theme/highlighting/") && key.find("color") >= 0) { + if (key.begins_with("text_editor/theme/highlighting/") && key.contains("color")) { cf->set_value(theme_section, key.replace("text_editor/theme/highlighting/", ""), ((Color)props[key].variant).to_html()); } } @@ -1449,7 +1449,7 @@ void EditorSettings::load_text_editor_theme() { // don't load if it's not already there! if (has_setting("text_editor/theme/highlighting/" + key)) { // make sure it is actually a color - if (val.is_valid_html_color() && key.find("color") >= 0) { + if (val.is_valid_html_color() && key.contains("color")) { props["text_editor/theme/highlighting/" + key].variant = Color::html(val); // change manually to prevent "Settings changed" console spam } } @@ -1540,6 +1540,19 @@ String EditorSettings::get_editor_layouts_config() const { float EditorSettings::get_auto_display_scale() const { #ifdef LINUXBSD_ENABLED if (DisplayServer::get_singleton()->get_name() == "Wayland") { + float main_window_scale = DisplayServer::get_singleton()->screen_get_scale(DisplayServer::SCREEN_OF_MAIN_WINDOW); + + if (DisplayServer::get_singleton()->get_screen_count() == 1 || Math::fract(main_window_scale) != 0) { + // If we have a single screen or the screen of the window is fractional, all + // bets are off. At this point, let's just return the current's window scale, + // which is special-cased to the scale of `SCREEN_OF_MAIN_WINDOW`. + return main_window_scale; + } + + // If the above branch didn't fire, fractional scaling isn't going to work + // properly anyways (we're need the ability to change the UI scale at runtime). + // At this point it's more convenient to "supersample" like we do with other + // platforms, hoping that the user is only using integer-scaled screens. return DisplayServer::get_singleton()->screen_get_max_scale(); } #endif |