diff options
author | simonb <simonb> | 2007-04-08 01:53:19 (GMT) |
---|---|---|
committer | simonb <simonb> | 2007-04-08 01:53:19 (GMT) |
commit | 91963544bdb919f40d4b54f7acaf665373ca5170 (patch) | |
tree | 009109f584d3be5ddfedaea88e0988657d1c5dd8 /src | |
parent | b09aae8579d57defadaa39ebc5566ddb68799506 (diff) | |
download | fluxbox-91963544bdb919f40d4b54f7acaf665373ca5170.zip fluxbox-91963544bdb919f40d4b54f7acaf665373ca5170.tar.bz2 |
Only replace numbers with zeros when calculating clock width.
Otherwise width of things in proportional fonts can be way out.
sf.net bug #1545066.
Diffstat (limited to 'src')
-rw-r--r-- | src/ClockTool.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/ClockTool.cc b/src/ClockTool.cc index 6e06ed6..99cbb06 100644 --- a/src/ClockTool.cc +++ b/src/ClockTool.cc | |||
@@ -220,7 +220,17 @@ void ClockTool::update(FbTk::Subject *subj) { | |||
220 | updateTime(); | 220 | updateTime(); |
221 | 221 | ||
222 | // + 2 to make the entire text fit inside | 222 | // + 2 to make the entire text fit inside |
223 | std::string text(m_button.text().size() + 2, '0'); | 223 | // we only replace numbers with zeros because everything else should be |
224 | // relatively static. If we replace all text with zeros then widths of | ||
225 | // proportional fonts with some strftime formats will be considerably off. | ||
226 | std::string text(m_button.text()); | ||
227 | |||
228 | int textlen = text.size(); | ||
229 | for (int i=0; i < textlen; ++i) { | ||
230 | if (text[i] > '0' && text[i] <= '9') // don't bother replacing zeros | ||
231 | text[i] = '0'; | ||
232 | } | ||
233 | text.append("00"); // pad | ||
224 | 234 | ||
225 | unsigned int new_width = m_button.width(); | 235 | unsigned int new_width = m_button.width(); |
226 | unsigned int new_height = m_button.height(); | 236 | unsigned int new_height = m_button.height(); |