diff --git a/abstract_client.cpp b/abstract_client.cpp --- a/abstract_client.cpp +++ b/abstract_client.cpp @@ -615,11 +615,7 @@ if (!isMinimizable() || isMinimized()) return; - if (isShade() && info) // NETWM restriction - KWindowInfo::isMinimized() == Hidden && !Shaded - info->setState(NET::States(), NET::Shaded); - m_minimized = true; - doMinimize(); updateWindowRules(Rules::Minimize); @@ -638,11 +634,7 @@ return; } - if (isShade() && info) // NETWM restriction - KWindowInfo::isMinimized() == Hidden && !Shaded - info->setState(NET::Shaded, NET::Shaded); - m_minimized = false; - doMinimize(); updateWindowRules(Rules::Minimize); diff --git a/x11client.cpp b/x11client.cpp --- a/x11client.cpp +++ b/x11client.cpp @@ -1427,6 +1427,10 @@ void X11Client::doMinimize() { + if (isShade()) { + // NETWM restriction - KWindowInfo::isMinimized() == Hidden && !Shaded + info->setState(isMinimized() ? NET::States() : NET::Shaded, NET::Shaded); + } updateVisibility(); updateAllowedActions(); workspace()->updateMinimizedOfTransients(this);