TabSynchronizer operates on AbstractClient

Change required to get methods using TabSynchronizer moved to
AbstractClient. Unfortunately we need to cast to Client when calling
updateStates. It's save as if it's not a Client we
a) don't have a tabGroup in the first place
b) the check if (main == only) will hit and the method returns
This commit is contained in:
Martin Gräßlin 2015-10-13 13:24:56 +02:00
parent 9ef42ae3c7
commit 94b5ca0d2b

View file

@ -2139,7 +2139,7 @@ void AbstractClient::setMaximize(bool vertically, bool horizontally)
class TabSynchronizer class TabSynchronizer
{ {
public: public:
TabSynchronizer(Client *client, TabGroup::States syncStates) : TabSynchronizer(AbstractClient *client, TabGroup::States syncStates) :
m_client(client) , m_states(syncStates) m_client(client) , m_states(syncStates)
{ {
if (client->tabGroup()) if (client->tabGroup())
@ -2153,12 +2153,12 @@ public:
{ {
if (m_client && m_client->tabGroup()) { if (m_client && m_client->tabGroup()) {
m_client->tabGroup()->blockStateUpdates(false); m_client->tabGroup()->blockStateUpdates(false);
m_client->tabGroup()->updateStates(m_client, m_states); m_client->tabGroup()->updateStates(dynamic_cast<Client*>(m_client), m_states);
} }
m_client = 0; m_client = 0;
} }
private: private:
Client *m_client; AbstractClient *m_client;
TabGroup::States m_states; TabGroup::States m_states;
}; };