diff --git a/tabbox/tabbox.h b/tabbox/tabbox.h --- a/tabbox/tabbox.h +++ b/tabbox/tabbox.h @@ -176,8 +176,8 @@ void initShortcuts(); - Client* nextClientStatic(Client*) const; - Client* previousClientStatic(Client*) const; + AbstractClient* nextClientStatic(AbstractClient*) const; + AbstractClient* previousClientStatic(AbstractClient*) const; int nextDesktopStatic(int iDesktop) const; int previousDesktopStatic(int iDesktop) const; void keyPress(int key); diff --git a/tabbox/tabbox.cpp b/tabbox/tabbox.cpp --- a/tabbox/tabbox.cpp +++ b/tabbox/tabbox.cpp @@ -284,7 +284,7 @@ ToplevelList stacking = Workspace::self()->stackingOrder(); TabBoxClientList ret; foreach (Toplevel *toplevel, stacking) { - if (Client *client = qobject_cast(toplevel)) { + if (auto client = qobject_cast(toplevel)) { ret.append(client->tabBoxClient()); } } @@ -331,7 +331,7 @@ QWeakPointer TabBoxHandlerImpl::desktopClient() const { foreach (Toplevel *toplevel, Workspace::self()->stackingOrder()) { - Client *client = qobject_cast(toplevel); + auto client = qobject_cast(toplevel); if (client && client->isDesktop() && client->isOnCurrentDesktop() && client->screen() == screens()->current()) { return client->tabBoxClient(); } @@ -1319,30 +1319,30 @@ void TabBox::CDEWalkThroughWindows(bool forward) { - Client* c = nullptr; + AbstractClient* c = nullptr; // this function find the first suitable client for unreasonable focus // policies - the topmost one, with some exceptions (can't be keepabove/below, // otherwise it gets stuck on them) // Q_ASSERT(Workspace::self()->block_stacking_updates == 0); for (int i = Workspace::self()->stackingOrder().size() - 1; i >= 0 ; --i) { - Client* it = qobject_cast(Workspace::self()->stackingOrder().at(i)); + auto it = qobject_cast(Workspace::self()->stackingOrder().at(i)); if (it && it->isOnCurrentActivity() && it->isOnCurrentDesktop() && !it->isSpecialWindow() && it->isShown(false) && it->wantsTabFocus() && !it->keepAbove() && !it->keepBelow()) { c = it; break; } } - Client* nc = c; + AbstractClient* nc = c; bool options_traverse_all; { KConfigGroup group(kwinApp()->config(), "TabBox"); options_traverse_all = group.readEntry("TraverseAll", false); } - Client* firstClient = nullptr; + AbstractClient* firstClient = nullptr; do { nc = forward ? nextClientStatic(nc) : previousClientStatic(nc); if (!firstClient) { @@ -1641,34 +1641,36 @@ auxiliary functions to travers all clients according to the static order. Useful for the CDE-style Alt-tab feature. */ -Client* TabBox::nextClientStatic(Client* c) const +AbstractClient* TabBox::nextClientStatic(AbstractClient* c) const { - if (!c || Workspace::self()->clientList().isEmpty()) + const auto &list = Workspace::self()->allClientList(); + if (!c || list.isEmpty()) return 0; - int pos = Workspace::self()->clientList().indexOf(c); + int pos = list.indexOf(c); if (pos == -1) - return Workspace::self()->clientList().first(); + return list.first(); ++pos; - if (pos == Workspace::self()->clientList().count()) - return Workspace::self()->clientList().first(); - return Workspace::self()->clientList()[ pos ]; + if (pos == list.count()) + return list.first(); + return list.at(pos); } /*! auxiliary functions to travers all clients according to the static order. Useful for the CDE-style Alt-tab feature. */ -Client* TabBox::previousClientStatic(Client* c) const +AbstractClient* TabBox::previousClientStatic(AbstractClient* c) const { - if (!c || Workspace::self()->clientList().isEmpty()) + const auto &list = Workspace::self()->allClientList(); + if (!c || list.isEmpty()) return 0; - int pos = Workspace::self()->clientList().indexOf(c); + int pos = list.indexOf(c); if (pos == -1) - return Workspace::self()->clientList().last(); + return list.last(); if (pos == 0) - return Workspace::self()->clientList().last(); + return list.last(); --pos; - return Workspace::self()->clientList()[ pos ]; + return list.at(pos); } bool TabBox::establishTabBoxGrab()