aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk/MenuTheme.cc
diff options
context:
space:
mode:
authorThomas Lübking <thomas.luebking@gmail.com>2016-04-11 21:57:18 (GMT)
committerMathias Gumz <akira@fluxbox.org>2016-07-01 18:14:04 (GMT)
commitca452a58867b4ceaacb35c823902c89f2f6b6b83 (patch)
tree57ae780edf7026a50fbd61e4201b1fbe2b70db62 /src/FbTk/MenuTheme.cc
parentea306493f95abd04cfa5b7653e3ad30a74b1985f (diff)
downloadfluxbox-ca452a58867b4ceaacb35c823902c89f2f6b6b83.zip
fluxbox-ca452a58867b4ceaacb35c823902c89f2f6b6b83.tar.bz2
ignore font for empty title height calculation
and align calculation on init and reconfigure As a result, if a menu has no label, the title height is determined only by menu.titleHeight (and the border sizes), not by the unused font.
Diffstat (limited to 'src/FbTk/MenuTheme.cc')
-rw-r--r--src/FbTk/MenuTheme.cc31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/FbTk/MenuTheme.cc b/src/FbTk/MenuTheme.cc
index db54483..9fc55e4 100644
--- a/src/FbTk/MenuTheme.cc
+++ b/src/FbTk/MenuTheme.cc
@@ -86,14 +86,14 @@ MenuTheme::MenuTheme(int screen_num):
86 86
87 ThemeManager::instance().loadTheme(*this); 87 ThemeManager::instance().loadTheme(*this);
88 88
89 m_real_item_height = std::max(*m_item_height, 89 if (*m_title_height < 1)
90 std::max(frameFont().height() + 2*bevelWidth(), 90 *m_title_height = 1;
91 hiliteFont().height() + 2*bevelWidth())); 91 const unsigned int pad = 2*bevelWidth();
92 m_real_title_height = std::max(*m_title_height, 92 m_real_item_height = std::max(std::max(pad + 1, *m_item_height),
93 titleFont().height() + 2*bevelWidth()); 93 std::max(frameFont().height() + pad,
94 94 hiliteFont().height() + pad));
95 m_real_item_height = m_real_item_height == 0 ? 1 : m_real_item_height; 95 m_real_title_height = std::max(std::max(pad + 1, *m_title_height),
96 m_real_title_height = m_real_title_height == 0 ? 1 : m_real_title_height; 96 titleFont().height() + pad);
97 97
98 t_text_gc.setForeground(*t_text); 98 t_text_gc.setForeground(*t_text);
99 f_text_gc.setForeground(*f_text); 99 f_text_gc.setForeground(*f_text);
@@ -115,15 +115,14 @@ void MenuTheme::reconfigTheme() {
115 if (*m_border_width > 20) 115 if (*m_border_width > 20)
116 *m_border_width = 20; 116 *m_border_width = 20;
117 117
118 m_real_item_height = std::max(*m_item_height,
119 std::max(frameFont().height() + 2*bevelWidth(),
120 hiliteFont().height() + 2*bevelWidth()));
121 m_real_title_height = std::max(*m_title_height,
122 titleFont().height() + 2*bevelWidth());
123 118
124 unsigned int minsize = 2*bevelWidth()+1; 119 const unsigned int pad = 2*bevelWidth();
125 m_real_item_height = m_real_item_height < minsize ? minsize: m_real_item_height; 120 m_real_item_height = std::max(std::max(pad + 1, *m_item_height),
126 m_real_title_height = m_real_title_height == minsize ? minsize : m_real_title_height; 121 std::max(frameFont().height() + pad,
122 hiliteFont().height() + pad));
123 m_real_title_height = std::max(std::max(pad + 1, *m_title_height),
124 titleFont().height() + pad);
125
127 unsigned int item_pm_height = itemHeight(); 126 unsigned int item_pm_height = itemHeight();
128 127
129 m_bullet_pixmap->scale(item_pm_height, item_pm_height); 128 m_bullet_pixmap->scale(item_pm_height, item_pm_height);