summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/frame.cc2
-rw-r--r--src/openbox.cc6
-rw-r--r--src/xeventhandler.cc4
-rw-r--r--src/xeventhandler.hh9
4 files changed, 19 insertions, 2 deletions
diff --git a/src/frame.cc b/src/frame.cc
index 9e4a8edb..601bbe39 100644
--- a/src/frame.cc
+++ b/src/frame.cc
@@ -65,6 +65,8 @@ void OBFrame::resize()
XResizeWindow(otk::OBDisplay::display, _window,
_size.left + _size.right + _client->area().width(),
_size.top + _size.bottom + _client->area().height());
+ XMoveWindow(otk::OBDisplay::display, _client->window(),
+ _size.left, _size.top);
// XXX: more is gunna have to happen here
}
diff --git a/src/openbox.cc b/src/openbox.cc
index c5a93eeb..757a6984 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -105,6 +105,12 @@ Openbox::Openbox(int argc, char **argv)
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);
+ }
// close the X display
otk::OBDisplay::destroy();
diff --git a/src/xeventhandler.cc b/src/xeventhandler.cc
index bdebadd8..ad7d7e27 100644
--- a/src/xeventhandler.cc
+++ b/src/xeventhandler.cc
@@ -124,7 +124,7 @@ void OBXEventHandler::configureRequest(const XConfigureRequestEvent &e)
// XXX: put this into the OBScreen or OBClient class!
-static void manageWindow(int screen, Window window)
+void OBXEventHandler::manageWindow(int screen, Window window)
{
OBClient *client = 0;
XWMHints *wmhint;
@@ -177,7 +177,7 @@ static void manageWindow(int screen, Window window)
}
// XXX: move this to the OBScreen or OBClient class!
-static void unmanageWindow(OBClient *client)
+void OBXEventHandler::unmanageWindow(OBClient *client)
{
OBFrame *frame = client->frame;
diff --git a/src/xeventhandler.hh b/src/xeventhandler.hh
index 87afee3a..e46ae116 100644
--- a/src/xeventhandler.hh
+++ b/src/xeventhandler.hh
@@ -13,6 +13,10 @@ extern "C" {
namespace ob {
+// XXX: TEMPORARY!!
+class OBClient;
+
+
//! Handles X events
/*!
There are 2 type of X events:<br>
@@ -142,6 +146,11 @@ public:
@param e The XEvent to handle
*/
void handle(const XEvent &e);
+
+
+ // XXX: TEMPORARY MOVE TO A SCREEN CLASS OR SOMETHING
+ void manageWindow(int, Window);
+ void unmanageWindow(OBClient*);
};
}