aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrathnor <rathnor>2004-08-27 17:24:49 (GMT)
committerrathnor <rathnor>2004-08-27 17:24:49 (GMT)
commitcbc8e23ed2d8f8c3702e8ff53943b5844d1b9de2 (patch)
tree86a1c52a57f7c0042a013f49d87d3f2d83c96c12 /src
parentd6b046c10f9e6d1516683708abafcf2af142f095 (diff)
downloadfluxbox_pavel-cbc8e23ed2d8f8c3702e8ff53943b5844d1b9de2.zip
fluxbox_pavel-cbc8e23ed2d8f8c3702e8ff53943b5844d1b9de2.tar.bz2
fluxbox::shutdown wasn't safe to get interruped by another signal
Diffstat (limited to 'src')
-rw-r--r--src/fluxbox.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 001b146..07c86fd 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: fluxbox.cc,v 1.249 2004/08/18 16:30:33 rathnor Exp $ 25// $Id: fluxbox.cc,v 1.250 2004/08/27 17:24:49 rathnor Exp $
26 26
27#include "fluxbox.hh" 27#include "fluxbox.hh"
28 28
@@ -1621,13 +1621,16 @@ void Fluxbox::restart(const char *prog) {
1621 1621
1622/// prepares fluxbox for a shutdown 1622/// prepares fluxbox for a shutdown
1623void Fluxbox::shutdown() { 1623void Fluxbox::shutdown() {
1624 if (m_shutdown)
1625 return;
1626
1627 m_shutdown = true;
1624 1628
1625 XSetInputFocus(FbTk::App::instance()->display(), PointerRoot, None, CurrentTime); 1629 XSetInputFocus(FbTk::App::instance()->display(), PointerRoot, None, CurrentTime);
1626 1630
1627 //send shutdown to all screens 1631 //send shutdown to all screens
1628 for_each(m_screen_list.begin(), m_screen_list.end(), mem_fun(&BScreen::shutdown)); 1632 for_each(m_screen_list.begin(), m_screen_list.end(), mem_fun(&BScreen::shutdown));
1629 1633
1630 m_shutdown = true;
1631 sync(false); 1634 sync(false);
1632 1635
1633} 1636}