From 2f570481b79b842d4f4578b3cb5c66ca87528e4e Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 25 Sep 2021 11:46:00 -0700 Subject: [PATCH] UI: Cleanup ellipsis more. Arg, silly me. --- Common/Data/Text/WrapText.cpp | 9 +++++++++ unittest/UnitTest.cpp | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/Common/Data/Text/WrapText.cpp b/Common/Data/Text/WrapText.cpp index 312047a8b3..6832389695 100644 --- a/Common/Data/Text/WrapText.cpp +++ b/Common/Data/Text/WrapText.cpp @@ -98,6 +98,9 @@ bool WordWrapper::WrapBeforeWord() { if (x_ + wordWidth_ > maxW_ && !hasEllipsis) { AddEllipsis(); skipNextWord_ = true; + if ((flags_ & FLAG_WRAP_TEXT) == 0) { + scanForNewline_ = true; + } } } return false; @@ -250,6 +253,9 @@ void WordWrapper::Wrap() { AppendWord(lastEllipsisIndex_, -1, false); AddEllipsis(); skipNextWord_ = true; + if ((flags_ & FLAG_WRAP_TEXT) == 0) { + scanForNewline_ = true; + } continue; } @@ -281,6 +287,9 @@ void WordWrapper::Wrap() { AddEllipsis(); forceEarlyWrap_ = false; skipNextWord_ = true; + if ((flags_ & FLAG_WRAP_TEXT) == 0) { + scanForNewline_ = true; + } continue; } } diff --git a/unittest/UnitTest.cpp b/unittest/UnitTest.cpp index b0e8a71bd0..757b0e281b 100644 --- a/unittest/UnitTest.cpp +++ b/unittest/UnitTest.cpp @@ -712,6 +712,12 @@ static bool TestWrapText() { EXPECT_WORDWRAP_EQ_STR("Hello goodbye", 14, FLAG_ELLIPSIZE_TEXT, "Hello..."); EXPECT_WORDWRAP_EQ_STR("Hello goodbye", 14, FLAG_WRAP_TEXT | FLAG_ELLIPSIZE_TEXT, "Hello \ngoodbye"); + // Multiple words with something short after... + EXPECT_WORDWRAP_EQ_STR("Hello goodbye yes", 14, 0, "Hello goodbye "); + EXPECT_WORDWRAP_EQ_STR("Hello goodbye yes", 14, FLAG_WRAP_TEXT, "Hello \ngoodbye \nyes"); + EXPECT_WORDWRAP_EQ_STR("Hello goodbye yes", 14, FLAG_ELLIPSIZE_TEXT, "Hello..."); + EXPECT_WORDWRAP_EQ_STR("Hello goodbye yes", 14, FLAG_WRAP_TEXT | FLAG_ELLIPSIZE_TEXT, "Hello \ngoodbye \nyes"); + // Now, multiple words, but only the first fits. EXPECT_WORDWRAP_EQ_STR("Hello goodbye", 10, 0, "Hello "); EXPECT_WORDWRAP_EQ_STR("Hello goodbye", 10, FLAG_WRAP_TEXT, "Hello \ngoodb\nye");