Browse Source

Merge pull request #106217 from DeeJayLSP/variable-weights-editor

Force weights on custom editor fonts when variable
Rémi Verschelde 3 tháng trước cách đây
mục cha
commit
f342601ce2
2 tập tin đã thay đổi với 10 bổ sung0 xóa
  1. 2 0
      doc/classes/EditorSettings.xml
  2. 8 0
      editor/themes/editor_fonts.cpp

+ 2 - 0
doc/classes/EditorSettings.xml

@@ -902,9 +902,11 @@
 		</member>
 		<member name="interface/editor/main_font" type="String" setter="" getter="">
 			The font to use for the editor interface. Must be a resource of a [Font] type such as a [code].ttf[/code] or [code].otf[/code] font file.
+			[b]Note:[/b] If the provided font is variable, a weight of 400 (normal) will be used.
 		</member>
 		<member name="interface/editor/main_font_bold" type="String" setter="" getter="">
 			The font to use for bold text in the editor interface. Must be a resource of a [Font] type such as a [code].ttf[/code] or [code].otf[/code] font file.
+			[b]Note:[/b] If the provided font is variable, a weight of 700 (bold) will be used.
 		</member>
 		<member name="interface/editor/main_font_size" type="int" setter="" getter="">
 			The size of the font in the editor interface.

+ 8 - 0
editor/themes/editor_fonts.cpp

@@ -249,6 +249,9 @@ void editor_register_fonts(const Ref<Theme> &p_theme) {
 	}
 	default_fc->set_spacing(TextServer::SPACING_TOP, -EDSCALE);
 	default_fc->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE);
+	Dictionary default_fc_opentype;
+	default_fc_opentype["weight"] = 400;
+	default_fc->set_variation_opentype(default_fc_opentype);
 
 	Ref<FontVariation> default_fc_msdf;
 	default_fc_msdf.instantiate();
@@ -265,6 +268,7 @@ void editor_register_fonts(const Ref<Theme> &p_theme) {
 	}
 	default_fc_msdf->set_spacing(TextServer::SPACING_TOP, -EDSCALE);
 	default_fc_msdf->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE);
+	default_fc_msdf->set_variation_opentype(default_fc_opentype);
 
 	Ref<FontVariation> bold_fc;
 	bold_fc.instantiate();
@@ -289,6 +293,9 @@ void editor_register_fonts(const Ref<Theme> &p_theme) {
 	}
 	bold_fc->set_spacing(TextServer::SPACING_TOP, -EDSCALE);
 	bold_fc->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE);
+	Dictionary bold_fc_opentype;
+	bold_fc_opentype["weight"] = 700;
+	bold_fc->set_variation_opentype(bold_fc_opentype);
 
 	Ref<FontVariation> bold_fc_msdf;
 	bold_fc_msdf.instantiate();
@@ -313,6 +320,7 @@ void editor_register_fonts(const Ref<Theme> &p_theme) {
 	}
 	bold_fc_msdf->set_spacing(TextServer::SPACING_TOP, -EDSCALE);
 	bold_fc_msdf->set_spacing(TextServer::SPACING_BOTTOM, -EDSCALE);
+	bold_fc_msdf->set_variation_opentype(bold_fc_opentype);
 
 	Ref<FontVariation> mono_fc;
 	mono_fc.instantiate();