summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-11-10 08:34:46 +0000
committerDana Jansens <danakj@orodu.net>2002-11-10 08:34:46 +0000
commit0b17bd83c7d09ee364913f5e5f6b214f996b3a83 (patch)
tree05d2ebacfa30a53e0fcebd09b87f569bb1b4213e /src
parent365791838f2523869b565dbc5b79555c9d82e1a1 (diff)
add \n's to the signal printfs
make the hash of all clients destroy properly
Diffstat (limited to 'src')
-rw-r--r--src/frame.cc8
-rw-r--r--src/openbox.cc25
2 files changed, 25 insertions, 8 deletions
diff --git a/src/frame.cc b/src/frame.cc
index 22249ce5..9b454a5c 100644
--- a/src/frame.cc
+++ b/src/frame.cc
@@ -267,6 +267,8 @@ void OBFrame::update()
// map/unmap all the windows
if (_decorations & OBClient::Decor_Titlebar) {
XMapWindow(otk::OBDisplay::display, _titlebar);
+ XSetWindowBorder(otk::OBDisplay::display, _titlebar,
+ _style->getBorderWidth());
XMapWindow(otk::OBDisplay::display, _label);
if (_decorations & OBClient::Decor_Iconify)
XMapWindow(otk::OBDisplay::display, _button_iconify);
@@ -295,8 +297,14 @@ void OBFrame::update()
if (_decorations & OBClient::Decor_Handle) {
XMapWindow(otk::OBDisplay::display, _handle);
+ XSetWindowBorder(otk::OBDisplay::display, _handle,
+ _style->getBorderWidth());
XMapWindow(otk::OBDisplay::display, _grip_left);
+ XSetWindowBorder(otk::OBDisplay::display, _grip_left,
+ _style->getBorderWidth());
XMapWindow(otk::OBDisplay::display, _grip_right);
+ XSetWindowBorder(otk::OBDisplay::display, _grip_right,
+ _style->getBorderWidth());
} else {
XUnmapWindow(otk::OBDisplay::display, _handle);
XUnmapWindow(otk::OBDisplay::display, _grip_left);
diff --git a/src/openbox.cc b/src/openbox.cc
index 757a6984..ee2fffb5 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -54,13 +54,13 @@ void Openbox::signalHandler(int signal)
case SIGINT:
case SIGTERM:
case SIGPIPE:
- printf("Caught signal %d. Exiting.", signal);
+ printf("Caught signal %d. Exiting.\n", signal);
instance->shutdown();
break;
case SIGFPE:
case SIGSEGV:
- printf("Caught signal %d. Aborting and dumping core.", signal);
+ printf("Caught signal %d. Aborting and dumping core.\n", signal);
abort();
}
}
@@ -107,10 +107,8 @@ Openbox::~Openbox()
_state = State_Exiting; // time to kill everything
// unmanage all windows
- ClientMap::iterator it, end;
- for (it = _clients.begin(), end = _clients.end(); it != end; ++it) {
- _xeventhandler.unmanageWindow(it->second);
- }
+ while (!_clients.empty())
+ _xeventhandler.unmanageWindow(_clients.begin()->second);
// close the X display
otk::OBDisplay::destroy();
@@ -224,13 +222,24 @@ void Openbox::addClient(Window window, OBClient *client)
void Openbox::removeClient(Window window)
{
- _clients[window] = (OBClient *) 0;
+ ClientMap::iterator it = _clients.find(window);
+ if (it != _clients.end())
+ _clients.erase(it);
}
OBClient *Openbox::findClient(Window window)
{
- return _clients[window];
+ /*
+ NOTE: we dont use _clients[] to find the value because that will insert
+ a new null into the hash, which really sucks when we want to clean up the
+ hash at shutdown!
+ */
+ ClientMap::iterator it = _clients.find(window);
+ if (it != _clients.end())
+ return it->second;
+ else
+ return (OBClient*) 0;
}
}