If the shortened text is so short there's nothing left of the original,
show one character and "...". This is standard behaviour on both
Windows and OS X, in addition to making lot of sense.
Fixes #11360.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66874
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
calc.Init(0, 1);
while ( !calc.IsShortEnough() )
calc.RemoveFromEnd();
calc.Init(0, 1);
while ( !calc.IsShortEnough() )
calc.RemoveFromEnd();
+
+ // always show at least one character of the string:
+ if ( calc.m_nCharsToRemove == len )
+ return wxString(wxELLIPSE_REPLACEMENT) + curLine[len-1];
+
else
calc.RemoveFromEnd();
}
else
calc.RemoveFromEnd();
}
+
+ // Always show at least one character of the string.
+ // Additionally, if there's only one character left, prefer
+ // "a..." to "...a":
+ if ( calc.m_nCharsToRemove == len ||
+ calc.m_nCharsToRemove == len - 1 )
+ {
+ return curLine[0] + wxString(wxELLIPSE_REPLACEMENT);
+ }
calc.Init(len - 1, 1);
while ( !calc.IsShortEnough() )
calc.RemoveFromStart();
calc.Init(len - 1, 1);
while ( !calc.IsShortEnough() )
calc.RemoveFromStart();
+
+ // always show at least one character of the string:
+ if ( calc.m_nCharsToRemove == len )
+ return curLine[0] + wxString(wxELLIPSE_REPLACEMENT);
+