summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fluxbox.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 19a0daa..3d75b31 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -900,13 +900,13 @@ void Fluxbox::handleButtonEvent(XButtonEvent &be) {
900 900
901void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) { 901void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) {
902 902
903
904 WinClient *winclient = 0;
905
906 BScreen *screen = searchScreen(ue.event); 903 BScreen *screen = searchScreen(ue.event);
907 904
908 if ( ue.event != ue.window && (screen != 0 || !ue.send_event)) 905 if (ue.event != ue.window && (!screen || !ue.send_event)) {
909 return; 906 return;
907 }
908
909 WinClient *winclient = 0;
910 910
911 if ((winclient = searchWindow(ue.window)) != 0) { 911 if ((winclient = searchWindow(ue.window)) != 0) {
912 912
@@ -929,6 +929,13 @@ void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) {
929 win = 0; 929 win = 0;
930 } 930 }
931 } 931 }
932
933 // according to http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.4
934 // a XWithdrawWindow is
935 // 1) unmapping the window (which leads to the upper branch
936 // 2) sends an synthetic unampevent (which is handled below)
937 } else if (screen && ue.send_event) {
938 XDeleteProperty(display(), ue.window, FbAtoms::instance()->getWMStateAtom());
932 } 939 }
933 940
934} 941}