mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-26 13:09:48 +01:00
layer-shell: properly map and unmap surface and propagate unmap events
This commit is contained in:
parent
729b47d46d
commit
0243271544
3 changed files with 7 additions and 0 deletions
|
@ -119,6 +119,8 @@ void CLayerSurface::onMap() {
|
|||
mapped = true;
|
||||
interactivity = layerSurface->current.interactivity;
|
||||
|
||||
layerSurface->surface->map();
|
||||
|
||||
// this layer might be re-mapped.
|
||||
fadingOut = false;
|
||||
g_pCompositor->removeFromFadingOutSafe(self.lock());
|
||||
|
@ -190,6 +192,7 @@ void CLayerSurface::onUnmap() {
|
|||
g_pCompositor->addToFadingOutSafe(self.lock());
|
||||
|
||||
mapped = false;
|
||||
layerSurface->surface->unmap();
|
||||
|
||||
startAnimation(false);
|
||||
return;
|
||||
|
@ -201,6 +204,7 @@ void CLayerSurface::onUnmap() {
|
|||
startAnimation(false);
|
||||
|
||||
mapped = false;
|
||||
layerSurface->surface->unmap();
|
||||
|
||||
g_pCompositor->addToFadingOutSafe(self.lock());
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ CLayerShellResource::CLayerShellResource(SP<CZwlrLayerSurfaceV1> resource_, SP<C
|
|||
PROTO::layerShell->destroyResource(this);
|
||||
});
|
||||
|
||||
listeners.unmapSurface = surf_->events.unmap.registerListener([this](std::any d) { events.unmap.emit(); });
|
||||
|
||||
listeners.commitSurface = surf_->events.commit.registerListener([this](std::any d) {
|
||||
current = pending;
|
||||
pending.committed = 0;
|
||||
|
|
|
@ -70,6 +70,7 @@ class CLayerShellResource : public ISurfaceRole {
|
|||
struct {
|
||||
CHyprSignalListener commitSurface;
|
||||
CHyprSignalListener destroySurface;
|
||||
CHyprSignalListener unmapSurface;
|
||||
} listeners;
|
||||
|
||||
bool closed = false;
|
||||
|
|
Loading…
Reference in a new issue