forked from quickshell/quickshell
core/window: fix mask reactivity
Masks previously would not update if the item was changed, and full transparency was decided incorrectly.
This commit is contained in:
parent
31264ac7d1
commit
dd811ac423
|
@ -245,14 +245,9 @@ void ProxyWindowBase::updateMask() {
|
|||
auto windowRegion = QRegion(QRect(0, 0, this->width(), this->height()));
|
||||
mask = this->mMask->applyTo(windowRegion);
|
||||
}
|
||||
|
||||
if (mask.isEmpty()) {
|
||||
this->window->setFlag(Qt::WindowTransparentForInput, true);
|
||||
}
|
||||
} else {
|
||||
this->window->setFlag(Qt::WindowTransparentForInput, false);
|
||||
}
|
||||
|
||||
this->window->setFlag(Qt::WindowTransparentForInput, this->mMask != nullptr && mask.isEmpty());
|
||||
this->window->setMask(mask);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,12 +26,16 @@ void PendingRegion::setItem(QQuickItem* item) {
|
|||
|
||||
this->mItem = item;
|
||||
|
||||
if (item != nullptr) {
|
||||
QObject::connect(this->mItem, &QQuickItem::xChanged, this, &PendingRegion::itemChanged);
|
||||
QObject::connect(this->mItem, &QQuickItem::yChanged, this, &PendingRegion::itemChanged);
|
||||
QObject::connect(this->mItem, &QQuickItem::widthChanged, this, &PendingRegion::itemChanged);
|
||||
QObject::connect(this->mItem, &QQuickItem::heightChanged, this, &PendingRegion::itemChanged);
|
||||
}
|
||||
|
||||
emit this->itemChanged();
|
||||
}
|
||||
|
||||
void PendingRegion::onItemDestroyed() { this->mItem = nullptr; }
|
||||
|
||||
QQmlListProperty<PendingRegion> PendingRegion::regions() {
|
||||
|
|
Loading…
Reference in a new issue