added shutdown variable to indicate that we are shutting down and dont need to listen to some signals
fluxgen fluxgen
2 files changed,
7 insertions(+),
4 deletions(-)
M
src/Screen.cc
→
src/Screen.cc
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Screen.cc,v 1.217 2003/08/12 01:03:25 fluxgen Exp $ +// $Id: Screen.cc,v 1.218 2003/08/12 12:21:42 fluxgen Exp $ #include "Screen.hh"@@ -302,7 +302,8 @@ m_name(screenname),
m_altname(altscreenname), m_resource_manager(rm), m_available_workspace_area(new Strut(0, 0, 0, 0)), - m_xinerama_headinfo(0) { + m_xinerama_headinfo(0), + m_shutdown(false) { Display *disp = FbTk::App::instance()->display();@@ -2099,7 +2100,7 @@ void BScreen::shutdown() {
Display *disp = FbTk::App::instance()->display(); rootWindow().setEventMask(NoEventMask); XSync(disp, False); - + m_shutdown = true; for_each(m_workspaces_list.begin(), m_workspaces_list.end(), mem_fun(&Workspace::shutdown));
M
src/Screen.hh
→
src/Screen.hh
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Screen.hh,v 1.120 2003/08/12 00:27:13 fluxgen Exp $ +// $Id: Screen.hh,v 1.121 2003/08/12 12:20:48 fluxgen Exp $ #ifndef SCREEN_HH #define SCREEN_HH@@ -318,6 +318,7 @@ // delete and remove the menu itself (opposite to Window)
void addConfigMenu(const char *label, FbTk::Menu &menu); void removeConfigMenu(FbTk::Menu &menu); + bool isShuttingdown() const { return m_shutdown; } enum { ROWSMARTPLACEMENT = 1, COLSMARTPLACEMENT, CASCADEPLACEMENT, UNDERMOUSEPLACEMENT, LEFTRIGHT, RIGHTLEFT, TOPBOTTOM, BOTTOMTOP };@@ -445,6 +446,7 @@ int x, y, width, height;
} *m_xinerama_headinfo; std::list<Strut *> m_strutlist; + bool m_shutdown; };