forked from quickshell/quickshell
wayland/layershell: support opposite-to-exclusion edge margins
This commit is contained in:
parent
3b4ebc5f16
commit
479ff58f84
1 changed files with 9 additions and 4 deletions
|
@ -21,11 +21,16 @@ WlrLayershell::WlrLayershell(QObject* parent): ProxyWindowBase(parent) {
|
|||
case ExclusionMode::Ignore: return -1;
|
||||
case ExclusionMode::Normal: return this->bExclusiveZone;
|
||||
case ExclusionMode::Auto:
|
||||
const auto edge = this->bcExclusionEdge.value();
|
||||
const auto margins = this->bMargins.value();
|
||||
|
||||
if (edge == Qt::TopEdge || edge == Qt::BottomEdge) return this->bImplicitHeight;
|
||||
else if (edge == Qt::LeftEdge || edge == Qt::RightEdge) return this->bImplicitWidth;
|
||||
else return 0;
|
||||
// add reverse edge margins which are ignored by wlr-layer-shell
|
||||
switch (this->bcExclusionEdge.value()) {
|
||||
case Qt::TopEdge: return this->bImplicitHeight + margins.bottom;
|
||||
case Qt::BottomEdge: return this->bImplicitHeight + margins.top;
|
||||
case Qt::LeftEdge: return this->bImplicitHeight + margins.right;
|
||||
case Qt::RightEdge: return this->bImplicitHeight + margins.left;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue