From cb718e2ad931928389ab95cc71564ea8358e92fd Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Fri, 27 Dec 2002 08:52:16 +0000 Subject: handle reparent events..hopefully :> --- src/client.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/client.cc') diff --git a/src/client.cc b/src/client.cc index 38364432..2461eff9 100644 --- a/src/client.cc +++ b/src/client.cc @@ -1002,4 +1002,26 @@ void OBClient::destroyHandler(const XDestroyWindowEvent &e) } +void OBClient::reparentHandler(const XReparentEvent &e) +{ +#ifdef DEBUG + printf("ReparentNotify for 0x%lx\n", e.window); +#endif // DEBUG + + OtkEventHandler::reparentHandler(e); + + // this is when the client is first taken captive in the frame + if (e.parent == frame->plate()) return; + + /* + This event is quite rare and is usually handled in unmapHandler. + However, if the window is unmapped when the reparent event occurs, + the window manager never sees it because an unmap event is not sent + to an already unmapped window. + */ + + // this deletes us etc + Openbox::instance->screen(_screen)->unmanageWindow(this); +} + } -- cgit v1.2.3