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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Client::untab(const QRect &toGeometry)
|
bool Client::untab(const QRect &toGeometry, bool clientRemoved)
|
||||||
{
|
{
|
||||||
TabGroup *group = tab_group;
|
TabGroup *group = tab_group;
|
||||||
if (group && group->remove(this)) { // remove sets the tabgroup to "0", therefore the pointer is cached
|
if (group && group->remove(this)) { // remove sets the tabgroup to "0", therefore the pointer is cached
|
||||||
if (group->isEmpty()) {
|
if (group->isEmpty()) {
|
||||||
delete group;
|
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()));
|
setClientShown(!(isMinimized() || isShade()));
|
||||||
bool keepSize = toGeometry.size() == size();
|
bool keepSize = toGeometry.size() == size();
|
||||||
bool changedSize = false;
|
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
|
* 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 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
|
* 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();
|
m_userActionsMenu->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
c->untab();
|
c->untab(QRect(), true);
|
||||||
|
|
||||||
if (client_keys_client == c)
|
if (client_keys_client == c)
|
||||||
setupWindowShortcutDone(false);
|
setupWindowShortcutDone(false);
|
||||||
|
|
Loading…
Reference in a new issue