From 11ae668af7ca716285f7768c68f5d04a153c3bd2 Mon Sep 17 00:00:00 2001
From: fluxgen <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