diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-16 13:47:05 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-16 13:47:05 +0100 |
commit | 912fd3f0e15c3363809e0d69fb94207166aa4f37 (patch) | |
tree | b41ce89066c4a1baff37877ac82599d7b8dbed65 /editor/scene_tree_editor.cpp | |
parent | 49a60b1d1c4d62fec1be89e4878433b6c3220ce0 (diff) | |
parent | 207e52c161a44869f1af022030c3129b8c38a5f7 (diff) |
Merge pull request #64563 from timothyqiu/word-wrap
Fix `String::word_wrap()` for long words
Diffstat (limited to 'editor/scene_tree_editor.cpp')
-rw-r--r-- | editor/scene_tree_editor.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 092ef30678..30a9dc5bbf 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -132,8 +132,16 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i if (config_err.is_empty()) { return; } - config_err = config_err.word_wrap(80); - warning->set_text(config_err); + + const PackedInt32Array boundaries = TS->string_get_word_breaks(config_err, "", 80); + PackedStringArray lines; + for (int i = 0; i < boundaries.size(); i += 2) { + const int start = boundaries[i]; + const int end = boundaries[i + 1]; + lines.append(config_err.substr(start, end - start + 1)); + } + + warning->set_text(String("\n").join(lines)); warning->popup_centered(); } else if (p_id == BUTTON_SIGNALS) { |