summaryrefslogtreecommitdiff
path: root/otk/label.cc
diff options
context:
space:
mode:
Diffstat (limited to 'otk/label.cc')
-rw-r--r--otk/label.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/otk/label.cc b/otk/label.cc
index 43d06f77..587e3212 100644
--- a/otk/label.cc
+++ b/otk/label.cc
@@ -55,7 +55,14 @@ void Label::setText(const ustring &text)
std::string::size_type p = 0;
while (p != std::string::npos) {
std::string::size_type p2 = s.find('\n', p);
- _parsedtext.push_back(s.substr(p, (p2==std::string::npos?p2:p2-p)));
+ std::string s(s.substr(p, (p2==std::string::npos?p2:p2-p)));
+
+ // turn tabs into spaces (multiples of 8)
+ std::string::size_type t;
+ while ((t = s.find('\t')) != std::string::npos)
+ s.replace(t, 1, std::string(8 - t % 8, ' '));
+
+ _parsedtext.push_back(s);
_parsedtext.back().setUtf8(utf);
p = (p2==std::string::npos?p2:p2+1);
}