diff options
Diffstat (limited to 'src/client.cc')
| -rw-r--r-- | src/client.cc | 22 |
1 files changed, 22 insertions, 0 deletions
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); +} + } |
