diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/Window.cc b/src/Window.cc index 9e8bbd2..1d85dea 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1405,11 +1405,11 @@ void FluxboxWindow::getMWMHints(void) { | |||
1405 | unsigned long num, len; | 1405 | unsigned long num, len; |
1406 | Fluxbox *fluxbox = Fluxbox::instance(); | 1406 | Fluxbox *fluxbox = Fluxbox::instance(); |
1407 | if (XGetWindowProperty(display, client.window, | 1407 | if (XGetWindowProperty(display, client.window, |
1408 | fluxbox->getMotifWMHintsAtom(), 0, | 1408 | fluxbox->getMotifWMHintsAtom(), 0, |
1409 | PropMwmHintsElements, false, | 1409 | PropMwmHintsElements, false, |
1410 | fluxbox->getMotifWMHintsAtom(), &atom_return, | 1410 | fluxbox->getMotifWMHintsAtom(), &atom_return, |
1411 | &format, &num, &len, | 1411 | &format, &num, &len, |
1412 | (unsigned char **) &client.mwm_hint) == Success && | 1412 | (unsigned char **) &client.mwm_hint) == Success && |
1413 | client.mwm_hint) | 1413 | client.mwm_hint) |
1414 | if (num == PropMwmHintsElements) { | 1414 | if (num == PropMwmHintsElements) { |
1415 | if (client.mwm_hint->flags & MwmHintsDecorations) | 1415 | if (client.mwm_hint->flags & MwmHintsDecorations) |
@@ -1437,10 +1437,10 @@ void FluxboxWindow::getMWMHints(void) { | |||
1437 | } | 1437 | } |
1438 | 1438 | ||
1439 | if (client.mwm_hint->flags & MwmHintsFunctions) | 1439 | if (client.mwm_hint->flags & MwmHintsFunctions) |
1440 | if (client.mwm_hint->functions & MwmFuncAll) | 1440 | if (client.mwm_hint->functions & MwmFuncAll) { |
1441 | functions.resize = functions.move = functions.iconify = | 1441 | functions.resize = functions.move = functions.iconify = |
1442 | functions.maximize = functions.close = true; | 1442 | functions.maximize = functions.close = true; |
1443 | else { | 1443 | } else { |
1444 | functions.resize = functions.move = functions.iconify = | 1444 | functions.resize = functions.move = functions.iconify = |
1445 | functions.maximize = functions.close = false; | 1445 | functions.maximize = functions.close = false; |
1446 | 1446 | ||
@@ -2688,7 +2688,16 @@ void FluxboxWindow::propertyNotifyEvent(Atom atom) { | |||
2688 | default: | 2688 | default: |
2689 | if (atom == fluxbox->getWMProtocolsAtom()) { | 2689 | if (atom == fluxbox->getWMProtocolsAtom()) { |
2690 | getWMProtocols(); | 2690 | getWMProtocols(); |
2691 | 2691 | ||
2692 | if (decorations.close && !findTitleButton(Fluxbox::Close)) { | ||
2693 | createButton(Fluxbox::Close, FluxboxWindow::closePressed_cb, | ||
2694 | FluxboxWindow::closeButton_cb, FluxboxWindow::closeDraw_cb); | ||
2695 | |||
2696 | if (decorations.titlebar) | ||
2697 | positionButtons(true); | ||
2698 | if (windowmenu) | ||
2699 | windowmenu->reconfigure(); | ||
2700 | } | ||
2692 | } | 2701 | } |
2693 | 2702 | ||
2694 | break; | 2703 | break; |