diff --git a/src/WinButton.cc b/src/WinButton.cc index 703820de..ff0ff76f 100644 --- a/src/WinButton.cc +++ b/src/WinButton.cc @@ -151,6 +151,8 @@ Pixmap WinButton::getPressedPixmap() const { case MINIMIZE: return m_pressed_theme->iconifyPixmap().pixmap().drawable(); case STICK: + if (m_listen_to.isStuck()) + return m_pressed_theme->stuckPixmap().pixmap().drawable(); return m_pressed_theme->stickPixmap().pixmap().drawable(); case CLOSE: return m_pressed_theme->closePixmap().pixmap().drawable(); @@ -308,7 +310,7 @@ void WinButton::updateAll() { setBackgroundPixmap(my_pm); // incorrect, pressed_pixmap is stateful in shade, so we'll do oneoff for now - if (m_type == SHADE) { + if (m_type == SHADE || m_type == STICK) { Pixmap p_pm = getPressedPixmap(); if (p_pm != None) setPressedPixmap(p_pm); diff --git a/src/WinButtonTheme.hh b/src/WinButtonTheme.hh index 47658221..224fc6cc 100644 --- a/src/WinButtonTheme.hh +++ b/src/WinButtonTheme.hh @@ -51,6 +51,7 @@ public: const FbTk::PixmapWithMask &stickPixmap() const { return *m_stick_pm; } FbTk::PixmapWithMask &stickPixmap() { return *m_stick_pm; } + const FbTk::PixmapWithMask &stuckPixmap() const { return *m_stuck_pm; } FbTk::PixmapWithMask &stuckPixmap() { return *m_stuck_pm; } const FbTk::PixmapWithMask &shadePixmap() const { return *m_shade_pm; }