skip reset states if client untabbed for release
BUG: 299333 FIXED-IN: 4.10 REVIEW: 108003
This commit is contained in:
parent
ad451beae2
commit
1727ab1211
3 changed files with 5 additions and 3 deletions
|
@ -1849,13 +1849,15 @@ bool Client::tabTo(Client *other, bool behind, bool activate)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Client::untab(const QRect &toGeometry)
|
||||
bool Client::untab(const QRect &toGeometry, bool clientRemoved)
|
||||
{
|
||||
TabGroup *group = tab_group;
|
||||
if (group && group->remove(this)) { // remove sets the tabgroup to "0", therefore the pointer is cached
|
||||
if (group->isEmpty()) {
|
||||
delete group;
|
||||
}
|
||||
if (clientRemoved)
|
||||
return true; // there's been a broadcast signal that this client is now removed - don't touch it
|
||||
setClientShown(!(isMinimized() || isShade()));
|
||||
bool keepSize = toGeometry.size() == size();
|
||||
bool changedSize = false;
|
||||
|
|
2
client.h
2
client.h
|
@ -556,7 +556,7 @@ public:
|
|||
* WARNING: non dynamic properties are ignored - you're not supposed to alter/update such explicitly
|
||||
*/
|
||||
Q_INVOKABLE void syncTabGroupFor(QString property, bool fromThisClient = false);
|
||||
Q_INVOKABLE bool untab(const QRect &toGeometry = QRect());
|
||||
Q_INVOKABLE bool untab(const QRect &toGeometry = QRect(), bool clientRemoved = false);
|
||||
/**
|
||||
* Set tab group - this is to be invoked by TabGroup::add/remove(client) and NO ONE ELSE
|
||||
*/
|
||||
|
|
|
@ -663,7 +663,7 @@ void Workspace::removeClient(Client* c, allowed_t)
|
|||
m_userActionsMenu->close();
|
||||
}
|
||||
|
||||
c->untab();
|
||||
c->untab(QRect(), true);
|
||||
|
||||
if (client_keys_client == c)
|
||||
setupWindowShortcutDone(false);
|
||||
|
|
Loading…
Reference in a new issue