X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclient.cc;h=33e11ce07e1e596621acb3c61fe5070e8feabc38;hb=b18959e1bda52f807f62c95772c69ce3005215a7;hp=453bf745602144a4cd989c2e1e94cc0700935bb4;hpb=265cf6c9478860336816570a141198d9257a27a1;p=chaz%2Fopenbox diff --git a/src/client.cc b/src/client.cc index 453bf745..33e11ce0 100644 --- a/src/client.cc +++ b/src/client.cc @@ -1017,15 +1017,23 @@ void Client::clientMessageHandler(const XClientMessageEvent &e) #ifdef DEBUG printf("net_active_window for 0x%lx\n", _window); #endif + if (openbox->screen(_screen)->showingDesktop()) + openbox->screen(_screen)->showDesktop(false); if (_iconic) iconify(false); + else if (!frame->visible()) // if its not visible for other reasons, then + return; // don't mess with it if (_shaded) shade(false); focus(); openbox->screen(_screen)->raiseWindow(this); } else if (e.message_type == otk::Property::atoms.openbox_active_window) { + if (openbox->screen(_screen)->showingDesktop()) + openbox->screen(_screen)->showDesktop(false); if (_iconic) iconify(false); + else if (!frame->visible()) // if its not visible for other reasons, then + return; // don't mess with it if (e.data.l[0] && _shaded) shade(false); focus(); @@ -1553,6 +1561,10 @@ void Client::iconify(bool iconic, bool curdesk) { if (_iconic == iconic) return; // nothing to do +#ifdef DEBUG + printf("%sconifying window: 0x%lx\n", (iconic ? "I" : "Uni"), _window); +#endif + _iconic = iconic; if (_iconic) {