diff options
author | Thomas Lübking <thomas.luebking@gmail.com> | 2016-06-23 23:39:18 (GMT) |
---|---|---|
committer | Mathias Gumz <akira@fluxbox.org> | 2016-06-26 14:31:22 (GMT) |
commit | bfe4737427d10ca098d1baff540ff8c4d44b8781 (patch) | |
tree | e234d08bb8552a4e400cadb9f6e92ff6cf43d5ee /src | |
parent | dcdde4d32c93d01df205bc06d7dfcbd356be031f (diff) | |
download | fluxbox-bfe4737427d10ca098d1baff540ff8c4d44b8781.zip fluxbox-bfe4737427d10ca098d1baff540ff8c4d44b8781.tar.bz2 |
fix tracking of MWM hints in case of removal
Diffstat (limited to 'src')
-rw-r--r-- | src/Window.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Window.cc b/src/Window.cc index f800e85..ac76aee 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1104,9 +1104,7 @@ void FluxboxWindow::reconfigure() { | |||
1104 | void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { | 1104 | void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { |
1105 | const WinClient::MwmHints *hint = client.getMwmHint(); | 1105 | const WinClient::MwmHints *hint = client.getMwmHint(); |
1106 | 1106 | ||
1107 | if (!hint) return; | 1107 | if (hint && !m_toggled_decos && hint->flags & MwmHintsDecorations) { |
1108 | |||
1109 | if (!m_toggled_decos && hint->flags & MwmHintsDecorations) { | ||
1110 | if (hint->decorations & MwmDecorAll) { | 1108 | if (hint->decorations & MwmDecorAll) { |
1111 | decorations.titlebar = decorations.handle = decorations.border = | 1109 | decorations.titlebar = decorations.handle = decorations.border = |
1112 | decorations.iconify = decorations.maximize = | 1110 | decorations.iconify = decorations.maximize = |
@@ -1131,6 +1129,9 @@ void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { | |||
1131 | if (hint->decorations & MwmDecorMaximize) | 1129 | if (hint->decorations & MwmDecorMaximize) |
1132 | decorations.maximize = true; | 1130 | decorations.maximize = true; |
1133 | } | 1131 | } |
1132 | } else { | ||
1133 | decorations.titlebar = decorations.handle = decorations.border = | ||
1134 | decorations.iconify = decorations.maximize = decorations.menu = true; | ||
1134 | } | 1135 | } |
1135 | 1136 | ||
1136 | unsigned int mask = decorationMask(); | 1137 | unsigned int mask = decorationMask(); |
@@ -1139,7 +1140,7 @@ void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { | |||
1139 | 1140 | ||
1140 | // functions.tabable is ours, not special one | 1141 | // functions.tabable is ours, not special one |
1141 | // note that it means this window is "tabbable" | 1142 | // note that it means this window is "tabbable" |
1142 | if (hint->flags & MwmHintsFunctions) { | 1143 | if (hint && hint->flags & MwmHintsFunctions) { |
1143 | if (hint->functions & MwmFuncAll) { | 1144 | if (hint->functions & MwmFuncAll) { |
1144 | functions.resize = functions.move = functions.iconify = | 1145 | functions.resize = functions.move = functions.iconify = |
1145 | functions.maximize = functions.close = true; | 1146 | functions.maximize = functions.close = true; |
@@ -1158,6 +1159,9 @@ void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { | |||
1158 | if (hint->functions & MwmFuncClose) | 1159 | if (hint->functions & MwmFuncClose) |
1159 | functions.close = true; | 1160 | functions.close = true; |
1160 | } | 1161 | } |
1162 | } else { | ||
1163 | functions.resize = functions.move = functions.iconify = | ||
1164 | functions.maximize = functions.close = true; | ||
1161 | } | 1165 | } |
1162 | } | 1166 | } |
1163 | 1167 | ||