summaryrefslogtreecommitdiff
path: root/src/frame.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-07 20:20:14 +0000
committerDana Jansens <danakj@orodu.net>2003-01-07 20:20:14 +0000
commitf11bd1b0cc5973590d1ee547736ac00f50447efa (patch)
treeea716d2589aba0573c9d10756bd5c75ec02c3c73 /src/frame.cc
parent2ae5aaca65b4d9c9747fe787c920a547e7ec13c0 (diff)
better reparent handling, dont fux with the event stack..
Diffstat (limited to 'src/frame.cc')
-rw-r--r--src/frame.cc28
1 files changed, 7 insertions, 21 deletions
diff --git a/src/frame.cc b/src/frame.cc
index 9c24689d..ac631d01 100644
--- a/src/frame.cc
+++ b/src/frame.cc
@@ -56,14 +56,11 @@ OBFrame::OBFrame(OBClient *client, otk::Style *style)
otk::OtkWidget::unfocus(); // stuff starts out appearing focused in otk
_plate.show(); // the other stuff is shown based on decor settings
-
- grabClient();
}
OBFrame::~OBFrame()
{
- releaseClient();
}
@@ -432,24 +429,13 @@ void OBFrame::grabClient()
void OBFrame::releaseClient()
{
- // check if the app has already reparented its window to the root window
- XEvent ev;
- if (XCheckTypedWindowEvent(otk::OBDisplay::display, _client->window(),
- ReparentNotify, &ev)) {
- /*
- If the app reparented itself, then we unmanage the window. This causes
- the window to be unmapped, so to be nice to it, we remap the window
- here. We don't put the event back onto the stack because we put it there
- in the first place.
- */
- XMapWindow(otk::OBDisplay::display, _client->window());
- } else {
- // according to the ICCCM - if the client doesn't reparent to
- // root, then we have to do it for them
- XReparentWindow(otk::OBDisplay::display, _client->window(),
- _screen->rootWindow(),
- _client->area().x(), _client->area().y());
- }
+ // XXX: check for a reparent before reparenting?
+
+ // according to the ICCCM - if the client doesn't reparent to
+ // root, then we have to do it for them
+ XReparentWindow(otk::OBDisplay::display, _client->window(),
+ _screen->rootWindow(),
+ _client->area().x(), _client->area().y());
}