diff options
Diffstat (limited to 'src/WinButton.cc')
-rw-r--r-- | src/WinButton.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/WinButton.cc b/src/WinButton.cc index 36639f5..f97784e 100644 --- a/src/WinButton.cc +++ b/src/WinButton.cc | |||
@@ -354,11 +354,23 @@ void WinButton::update(FbTk::Subject *subj) { | |||
354 | m_icon_pixmap.release(); | 354 | m_icon_pixmap.release(); |
355 | m_icon_mask.release(); | 355 | m_icon_mask.release(); |
356 | } else { | 356 | } else { |
357 | |||
358 | // no pixmap | ||
357 | if (!((hints->flags & IconPixmapHint) && hints->icon_pixmap != 0)) | 359 | if (!((hints->flags & IconPixmapHint) && hints->icon_pixmap != 0)) |
358 | m_icon_pixmap.release(); | 360 | m_icon_pixmap.release(); |
361 | |||
362 | // pixmap has changed | ||
363 | if (hints->flags & IconPixmapHint && hints->icon_pixmap != 0 && | ||
364 | hints->icon_pixmap != m_icon_pixmap.drawable()) | ||
365 | m_icon_pixmap.release(); | ||
359 | 366 | ||
367 | // no pixmap-mask | ||
360 | if (!(hints->flags & IconMaskHint)) | 368 | if (!(hints->flags & IconMaskHint)) |
361 | m_icon_mask.release(); | 369 | m_icon_mask.release(); |
370 | |||
371 | // pixmap-mask has changed | ||
372 | if (hints->flags & IconMaskHint && hints->icon_mask != m_icon_mask.drawable()) | ||
373 | m_icon_mask.release(); | ||
362 | } | 374 | } |
363 | 375 | ||
364 | XFree(hints); | 376 | XFree(hints); |