diff options
Diffstat (limited to 'src/IconButton.cc')
-rw-r--r-- | src/IconButton.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/IconButton.cc b/src/IconButton.cc index 2f68ecf..093298e 100644 --- a/src/IconButton.cc +++ b/src/IconButton.cc | |||
@@ -20,7 +20,7 @@ | |||
20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
21 | // DEALINGS IN THE SOFTWARE. | 21 | // DEALINGS IN THE SOFTWARE. |
22 | 22 | ||
23 | // $Id: IconButton.cc,v 1.9 2003/10/31 10:37:09 rathnor Exp $ | 23 | // $Id: IconButton.cc,v 1.10 2003/10/31 19:32:39 rathnor Exp $ |
24 | 24 | ||
25 | #include "IconButton.hh" | 25 | #include "IconButton.hh" |
26 | 26 | ||
@@ -144,14 +144,14 @@ void IconButton::update(FbTk::Subject *subj) { | |||
144 | if (hints->flags & IconPixmapHint && hints->icon_pixmap != 0) { | 144 | if (hints->flags & IconPixmapHint && hints->icon_pixmap != 0) { |
145 | // setup icon window | 145 | // setup icon window |
146 | m_icon_window.show(); | 146 | m_icon_window.show(); |
147 | int new_height = height() - m_icon_window.y(); | 147 | int new_height = height() - 2*m_icon_window.y(); // equally padded |
148 | int new_width = height(); | 148 | int new_width = new_height; |
149 | m_icon_window.resize(new_width ? new_width : 1, new_height ? new_height : 1); | 149 | m_icon_window.resize((new_width>0) ? new_width : 1, (new_height>0) ? new_height : 1); |
150 | 150 | ||
151 | m_icon_pixmap.copy(hints->icon_pixmap); | 151 | m_icon_pixmap.copy(hints->icon_pixmap); |
152 | m_icon_pixmap.scale(m_icon_window.height(), m_icon_window.height()); | 152 | m_icon_pixmap.scale(m_icon_window.width(), m_icon_window.height()); |
153 | 153 | ||
154 | setBackgroundPixmap(m_icon_pixmap.drawable()); | 154 | m_icon_window.setBackgroundPixmap(m_icon_pixmap.drawable()); |
155 | } else { | 155 | } else { |
156 | // no icon pixmap | 156 | // no icon pixmap |
157 | m_icon_window.move(0, 0); | 157 | m_icon_window.move(0, 0); |
@@ -186,6 +186,8 @@ void IconButton::update(FbTk::Subject *subj) { | |||
186 | 186 | ||
187 | void IconButton::setupWindow() { | 187 | void IconButton::setupWindow() { |
188 | 188 | ||
189 | m_icon_window.clear(); | ||
190 | |||
189 | if (!m_win.clientList().empty()) { | 191 | if (!m_win.clientList().empty()) { |
190 | setText(m_win.winClient().title()); | 192 | setText(m_win.winClient().title()); |
191 | // draw with x offset and y offset | 193 | // draw with x offset and y offset |