From 11ae668af7ca716285f7768c68f5d04a153c3bd2 Mon Sep 17 00:00:00 2001 From: fluxgen Date: Tue, 8 Jan 2002 21:40:04 +0000 Subject: Fixed closebutton --- src/Window.cc | 25 +++++++++++++++++-------- 1 file 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) { unsigned long num, len; Fluxbox *fluxbox = Fluxbox::instance(); if (XGetWindowProperty(display, client.window, - fluxbox->getMotifWMHintsAtom(), 0, - PropMwmHintsElements, false, - fluxbox->getMotifWMHintsAtom(), &atom_return, - &format, &num, &len, - (unsigned char **) &client.mwm_hint) == Success && + fluxbox->getMotifWMHintsAtom(), 0, + PropMwmHintsElements, false, + fluxbox->getMotifWMHintsAtom(), &atom_return, + &format, &num, &len, + (unsigned char **) &client.mwm_hint) == Success && client.mwm_hint) if (num == PropMwmHintsElements) { if (client.mwm_hint->flags & MwmHintsDecorations) @@ -1437,10 +1437,10 @@ void FluxboxWindow::getMWMHints(void) { } if (client.mwm_hint->flags & MwmHintsFunctions) - if (client.mwm_hint->functions & MwmFuncAll) + if (client.mwm_hint->functions & MwmFuncAll) { functions.resize = functions.move = functions.iconify = functions.maximize = functions.close = true; - else { + } else { functions.resize = functions.move = functions.iconify = functions.maximize = functions.close = false; @@ -2688,7 +2688,16 @@ void FluxboxWindow::propertyNotifyEvent(Atom atom) { default: if (atom == fluxbox->getWMProtocolsAtom()) { getWMProtocols(); - + + if (decorations.close && !findTitleButton(Fluxbox::Close)) { + createButton(Fluxbox::Close, FluxboxWindow::closePressed_cb, + FluxboxWindow::closeButton_cb, FluxboxWindow::closeDraw_cb); + + if (decorations.titlebar) + positionButtons(true); + if (windowmenu) + windowmenu->reconfigure(); + } } break; -- cgit v0.11.2