desktop/ls: clamp layer from protocol
This commit is contained in:
parent
3b77c784e2
commit
107275238c
1 changed files with 6 additions and 4 deletions
|
|
@ -26,7 +26,7 @@ PHLLS CLayerSurface::create(SP<CLayerShellResource> resource) {
|
||||||
pLS->m_ruleApplicator = makeUnique<Desktop::Rule::CLayerRuleApplicator>(pLS);
|
pLS->m_ruleApplicator = makeUnique<Desktop::Rule::CLayerRuleApplicator>(pLS);
|
||||||
pLS->m_self = pLS;
|
pLS->m_self = pLS;
|
||||||
pLS->m_namespace = resource->m_layerNamespace;
|
pLS->m_namespace = resource->m_layerNamespace;
|
||||||
pLS->m_layer = resource->m_current.layer;
|
pLS->m_layer = std::clamp(resource->m_current.layer, ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM, ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY);
|
||||||
pLS->m_popupHead = CPopup::create(pLS);
|
pLS->m_popupHead = CPopup::create(pLS);
|
||||||
|
|
||||||
g_pAnimationManager->createAnimation(0.f, pLS->m_alpha, g_pConfigManager->getAnimationPropertyConfig("fadeLayersIn"), pLS, AVARDAMAGE_ENTIRE);
|
g_pAnimationManager->createAnimation(0.f, pLS->m_alpha, g_pConfigManager->getAnimationPropertyConfig("fadeLayersIn"), pLS, AVARDAMAGE_ENTIRE);
|
||||||
|
|
@ -323,16 +323,18 @@ void CLayerSurface::onCommit() {
|
||||||
if (m_layerSurface->m_current.committed != 0) {
|
if (m_layerSurface->m_current.committed != 0) {
|
||||||
if (m_layerSurface->m_current.committed & CLayerShellResource::eCommittedState::STATE_LAYER && m_layerSurface->m_current.layer != m_layer) {
|
if (m_layerSurface->m_current.committed & CLayerShellResource::eCommittedState::STATE_LAYER && m_layerSurface->m_current.layer != m_layer) {
|
||||||
|
|
||||||
|
const auto NEW_LAYER = std::clamp(m_layerSurface->m_current.layer, ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM, ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY);
|
||||||
|
|
||||||
for (auto it = PMONITOR->m_layerSurfaceLayers[m_layer].begin(); it != PMONITOR->m_layerSurfaceLayers[m_layer].end(); it++) {
|
for (auto it = PMONITOR->m_layerSurfaceLayers[m_layer].begin(); it != PMONITOR->m_layerSurfaceLayers[m_layer].end(); it++) {
|
||||||
if (*it == m_self) {
|
if (*it == m_self) {
|
||||||
PMONITOR->m_layerSurfaceLayers[m_layerSurface->m_current.layer].emplace_back(*it);
|
PMONITOR->m_layerSurfaceLayers[NEW_LAYER].emplace_back(*it);
|
||||||
PMONITOR->m_layerSurfaceLayers[m_layer].erase(it);
|
PMONITOR->m_layerSurfaceLayers[m_layer].erase(it);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_layer = m_layerSurface->m_current.layer;
|
m_layer = NEW_LAYER;
|
||||||
m_aboveFullscreen = m_layerSurface->m_current.layer >= ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY;
|
m_aboveFullscreen = NEW_LAYER >= ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY;
|
||||||
|
|
||||||
// if in fullscreen, only overlay can be above.
|
// if in fullscreen, only overlay can be above.
|
||||||
*m_alpha = PMONITOR->inFullscreenMode() ? (m_layer >= ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY ? 1.F : 0.F) : 1.F;
|
*m_alpha = PMONITOR->inFullscreenMode() ? (m_layer >= ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY ? 1.F : 0.F) : 1.F;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue