diff --git a/client.cpp b/client.cpp index 96ac58c070..d406945c7b 100644 --- a/client.cpp +++ b/client.cpp @@ -1696,6 +1696,16 @@ void Client::stickyChange( bool ) { } +/*!\fn shadeChange( bool shaded ) + + Indicates that the window was shaded or unshaded. \a shaded is + set respectively. Subclasses may want to indicate the new state + graphically, for example with a different icon. + */ +void Client::shadeChange( bool ) +{ +} + /*! @@ -1904,6 +1914,11 @@ void Client::toggleSticky() setSticky( !isSticky() ); } +void Client::toggleShade() +{ + setShade( !isShade() ); +} + void Client::maximize() { if ( isMaximized() ) @@ -2201,6 +2216,7 @@ void Client::setShade( bool s, int hus ) info->setState( shaded?NET::Shaded:0, NET::Shaded ); workspace()->iconifyOrDeiconifyTransientsOf( this ); + shadeChange( shaded ); } diff --git a/client.h b/client.h index ee8703beaf..8c7aecc7c3 100644 --- a/client.h +++ b/client.h @@ -212,6 +212,7 @@ public slots: void maximize( MaximizeMode m ); void maximize(); void toggleSticky(); + void toggleShade(); void contextHelp(); void autoRaise(); void shadeHover(); @@ -240,6 +241,7 @@ protected: virtual void activeChange( bool ); virtual void maximizeChange( bool ); virtual void stickyChange( bool ); + virtual void shadeChange( bool ); enum MousePosition {