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
{
public:
TabSynchronizer(Client *client, TabGroup::States syncStates) :
TabSynchronizer(AbstractClient *client, TabGroup::States syncStates) :
m_client(client) , m_states(syncStates)
{
if (client->tabGroup())
@ -2153,12 +2153,12 @@ public:
{
if (m_client && m_client->tabGroup()) {
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;
}
private:
Client *m_client;
AbstractClient *m_client;
TabGroup::States m_states;
};