summaryrefslogtreecommitdiff
path: root/src/xeventhandler.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-11-10 09:44:27 +0000
committerDana Jansens <danakj@orodu.net>2002-11-10 09:44:27 +0000
commit3762f3c88f4d84697df37c0a3bdc733e7bee6e45 (patch)
tree793701aca1ab7bb02824eb02246dcc2a9b4bab84 /src/xeventhandler.cc
parent6e2593cadc9a755d0e08facb7df0459a786e692b (diff)
pretty sure all frame elements are placed correctly now
Diffstat (limited to 'src/xeventhandler.cc')
-rw-r--r--src/xeventhandler.cc24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/xeventhandler.cc b/src/xeventhandler.cc
index 3225fb46..9d738dde 100644
--- a/src/xeventhandler.cc
+++ b/src/xeventhandler.cc
@@ -156,16 +156,6 @@ void OBXEventHandler::manageWindow(int screen, Window window)
// create the OBClient class, which gets all of the hints on the window
Openbox::instance->addClient(window, client = new OBClient(screen, window));
- // add all the client's decoration windows as event handlers for the client
- Openbox::instance->addClient(client->frame->titlebar(), client);
- Openbox::instance->addClient(client->frame->buttonIconify(), client);
- Openbox::instance->addClient(client->frame->buttonMax(), client);
- Openbox::instance->addClient(client->frame->buttonStick(), client);
- Openbox::instance->addClient(client->frame->buttonClose(), client);
- Openbox::instance->addClient(client->frame->label(), client);
- Openbox::instance->addClient(client->frame->handle(), client);
- Openbox::instance->addClient(client->frame->gripLeft(), client);
- Openbox::instance->addClient(client->frame->gripRight(), client);
// we dont want a border on the client
XSetWindowBorderWidth(otk::OBDisplay::display, window, 0);
@@ -182,7 +172,20 @@ void OBXEventHandler::manageWindow(int screen, Window window)
otk::Style *style = ((Blackbox*)Openbox::instance)->
searchScreen(RootWindow(otk::OBDisplay::display, screen))->
getWindowStyle();
+ // create the decoration frame for the client window
client->frame = new OBFrame(client, style);
+
+ // add all the client's decoration windows as event handlers for the client
+ Openbox::instance->addClient(client->frame->window(), client);
+ Openbox::instance->addClient(client->frame->titlebar(), client);
+ Openbox::instance->addClient(client->frame->buttonIconify(), client);
+ Openbox::instance->addClient(client->frame->buttonMax(), client);
+ Openbox::instance->addClient(client->frame->buttonStick(), client);
+ Openbox::instance->addClient(client->frame->buttonClose(), client);
+ Openbox::instance->addClient(client->frame->label(), client);
+ Openbox::instance->addClient(client->frame->handle(), client);
+ Openbox::instance->addClient(client->frame->gripLeft(), client);
+ Openbox::instance->addClient(client->frame->gripRight(), client);
// XXX: if on the current desktop..
XMapWindow(otk::OBDisplay::display, client->frame->window());
@@ -212,6 +215,7 @@ void OBXEventHandler::unmanageWindow(OBClient *client)
// remove the client class from the search list
Openbox::instance->removeClient(client->window());
// remove the frame's decor elements as event handlers for the client
+ Openbox::instance->removeClient(frame->window());
Openbox::instance->removeClient(frame->titlebar());
Openbox::instance->removeClient(frame->buttonIconify());
Openbox::instance->removeClient(frame->buttonMax());