Merge branch 'Plasma/5.4'
This commit is contained in:
commit
8e11729ff6
3 changed files with 13 additions and 3 deletions
|
@ -413,6 +413,7 @@ void Client::createDecoration(const QRect& oldgeom)
|
||||||
connect(m_decoration, &KDecoration2::Decoration::resizeOnlyBordersChanged, this, &Client::updateInputWindow);
|
connect(m_decoration, &KDecoration2::Decoration::resizeOnlyBordersChanged, this, &Client::updateInputWindow);
|
||||||
connect(m_decoration, &KDecoration2::Decoration::bordersChanged, this,
|
connect(m_decoration, &KDecoration2::Decoration::bordersChanged, this,
|
||||||
[this]() {
|
[this]() {
|
||||||
|
updateFrameExtents();
|
||||||
GeometryUpdatesBlocker blocker(this);
|
GeometryUpdatesBlocker blocker(this);
|
||||||
// TODO: this is obviously idempotent
|
// TODO: this is obviously idempotent
|
||||||
// calculateGravitation(true) would have to operate on the old border sizes
|
// calculateGravitation(true) would have to operate on the old border sizes
|
||||||
|
|
|
@ -1077,9 +1077,11 @@ void ScreenEdges::unreserve(ElectricBorder border, QObject *object)
|
||||||
|
|
||||||
void ScreenEdges::reserve(Client *client, ElectricBorder border)
|
void ScreenEdges::reserve(Client *client, ElectricBorder border)
|
||||||
{
|
{
|
||||||
|
bool hadBorder = false;
|
||||||
auto it = m_edges.begin();
|
auto it = m_edges.begin();
|
||||||
while (it != m_edges.end()) {
|
while (it != m_edges.end()) {
|
||||||
if ((*it)->client() == client) {
|
if ((*it)->client() == client) {
|
||||||
|
hadBorder = true;
|
||||||
if ((*it)->border() == border) {
|
if ((*it)->border() == border) {
|
||||||
if (client->isHiddenInternal() && !(*it)->isReserved()) {
|
if (client->isHiddenInternal() && !(*it)->isReserved()) {
|
||||||
(*it)->reserve();
|
(*it)->reserve();
|
||||||
|
@ -1093,9 +1095,15 @@ void ScreenEdges::reserve(Client *client, ElectricBorder border)
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
createEdgeForClient(client, border);
|
|
||||||
|
|
||||||
connect(client, &Client::geometryChanged, this, &ScreenEdges::handleClientGeometryChanged);
|
if (border != ElectricNone) {
|
||||||
|
connect(client, &Client::geometryChanged, this, &ScreenEdges::handleClientGeometryChanged, Qt::UniqueConnection);
|
||||||
|
createEdgeForClient(client, border);
|
||||||
|
} else {
|
||||||
|
disconnect(client, &Client::geometryChanged, this, &ScreenEdges::handleClientGeometryChanged);
|
||||||
|
if (hadBorder) // show again
|
||||||
|
client->showOnScreenEdge();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenEdges::createEdgeForClient(Client *client, ElectricBorder border)
|
void ScreenEdges::createEdgeForClient(Client *client, ElectricBorder border)
|
||||||
|
|
|
@ -43,7 +43,6 @@ SwitcherItem::SwitcherItem(QObject *parent)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(screens(), &Screens::changed, this, &SwitcherItem::screenGeometryChanged);
|
connect(screens(), &Screens::changed, this, &SwitcherItem::screenGeometryChanged);
|
||||||
connect(screens(), &Screens::currentChanged, this, &SwitcherItem::screenGeometryChanged);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SwitcherItem::~SwitcherItem()
|
SwitcherItem::~SwitcherItem()
|
||||||
|
@ -71,6 +70,8 @@ void SwitcherItem::setVisible(bool visible)
|
||||||
if (m_visible == visible) {
|
if (m_visible == visible) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (visible)
|
||||||
|
emit screenGeometryChanged();
|
||||||
m_visible = visible;
|
m_visible = visible;
|
||||||
emit visibleChanged();
|
emit visibleChanged();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue