You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-24 15:26:15 +00:00
Add line_breaking_strictness project setting.
This commit is contained in:
@@ -6513,7 +6513,17 @@ UBreakIterator *TextServerAdvanced::_create_line_break_iterator_for_locale(const
|
||||
// Creating UBreakIterator (ubrk_open) is surprisingly costly.
|
||||
// However, cloning (ubrk_clone) is cheaper, so we keep around blueprints to accelerate creating new ones.
|
||||
|
||||
const String language = p_language.is_empty() ? TranslationServer::get_singleton()->get_tool_locale() : p_language;
|
||||
String language = p_language.is_empty() ? TranslationServer::get_singleton()->get_tool_locale() : p_language;
|
||||
if (!language.contains("@")) {
|
||||
if (lb_strictness == LB_LOOSE) {
|
||||
language += "@lb=loose";
|
||||
} else if (lb_strictness == LB_NORMAL) {
|
||||
language += "@lb=normal";
|
||||
} else if (lb_strictness == LB_STRICT) {
|
||||
language += "@lb=strict";
|
||||
}
|
||||
}
|
||||
|
||||
_THREAD_SAFE_METHOD_
|
||||
const HashMap<String, UBreakIterator *>::Iterator key_value = line_break_iterators_per_language.find(language);
|
||||
if (key_value) {
|
||||
@@ -8066,12 +8076,14 @@ bool TextServerAdvanced::_is_valid_letter(uint64_t p_unicode) const {
|
||||
|
||||
void TextServerAdvanced::_update_settings() {
|
||||
lcd_subpixel_layout.set((TextServer::FontLCDSubpixelLayout)(int)GLOBAL_GET("gui/theme/lcd_subpixel_layout"));
|
||||
lb_strictness = (LineBreakStrictness)(int)GLOBAL_GET("internationalization/locale/line_breaking_strictness");
|
||||
}
|
||||
|
||||
TextServerAdvanced::TextServerAdvanced() {
|
||||
_insert_num_systems_lang();
|
||||
_insert_feature_sets();
|
||||
_bmp_create_font_funcs();
|
||||
_update_settings();
|
||||
ProjectSettings::get_singleton()->connect("settings_changed", callable_mp(this, &TextServerAdvanced::_update_settings));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user