summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2024-02-29 00:03:28 +0000
committerGitHub <noreply@github.com>2024-02-29 00:03:28 +0000
commitb1c0f1cc018d13ac1e5ebccaade5528ec757bd74 (patch)
tree11f62bf58b902b0c0b1732ed3f66aa601dae49fd /src/events/Windows.cpp
parent1e7eb3a5a5419f97b61a3403880b161c85dd7b17 (diff)
subsurface: Rewrite the subsurface tree (#4877)
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp17
1 files changed, 2 insertions, 15 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 6ea0bb0c..162415b4 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -486,8 +486,6 @@ void Events::listener_mapWindow(void* owner, void* data) {
PWINDOW->m_fDimPercent.setValueAndWarp(0);
}
- Debug::log(LOG, "Window got assigned a surfaceTreeNode {:x}", (uintptr_t)PWINDOW->m_pSurfaceTree);
-
if (!PWINDOW->m_bIsX11) {
PWINDOW->hyprListener_setTitleWindow.initCallback(&PWINDOW->m_uSurface.xdg->toplevel->events.set_title, &Events::listener_setTitleWindow, PWINDOW, "XDG Window Late");
PWINDOW->hyprListener_newPopupXDG.initCallback(&PWINDOW->m_uSurface.xdg->events.new_popup, &Events::listener_newPopupXDG, PWINDOW, "XDG Window Late");
@@ -538,8 +536,6 @@ void Events::listener_mapWindow(void* owner, void* data) {
// recheck idle inhibitors
g_pInputManager->recheckIdleInhibitorStatus();
- PWINDOW->m_pSurfaceTree = SubsurfaceTree::createTreeRoot(PWINDOW->m_pWLSurface.wlr(), addViewCoords, PWINDOW, PWINDOW);
-
PWINDOW->updateToplevel();
if (workspaceSilent) {
@@ -757,11 +753,6 @@ void Events::listener_unmapWindow(void* owner, void* data) {
Debug::log(LOG, "Unmapped was not focused, ignoring a refocus.");
}
- Debug::log(LOG, "Destroying the SubSurface tree of unmapped window {}", PWINDOW);
- SubsurfaceTree::destroySurfaceTree(PWINDOW->m_pSurfaceTree);
-
- PWINDOW->m_pSurfaceTree = nullptr;
-
PWINDOW->m_bFadingOut = true;
g_pCompositor->addToFadingOutSafe(PWINDOW);
@@ -842,6 +833,8 @@ void Events::listener_commitWindow(void* owner, void* data) {
g_pHyprRenderer->damageSurface(PWINDOW->m_pWLSurface.wlr(), PWINDOW->m_vRealPosition.goalv().x, PWINDOW->m_vRealPosition.goalv().y,
PWINDOW->m_bIsX11 ? 1.0 / PWINDOW->m_fX11SurfaceScaledBy : 1.0);
+ PWINDOW->m_pSubsurfaceHead->recheckDamageForSubsurfaces();
+
if (PWINDOW->m_bIsX11 || !PWINDOW->m_bIsFloating || PWINDOW->m_bIsFullscreen)
return;
@@ -895,12 +888,6 @@ void Events::listener_destroyWindow(void* owner, void* data) {
g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW);
- if (PWINDOW->m_pSurfaceTree) {
- Debug::log(LOG, "Destroying Subsurface tree of {} in destroyWindow", PWINDOW);
- SubsurfaceTree::destroySurfaceTree(PWINDOW->m_pSurfaceTree);
- PWINDOW->m_pSurfaceTree = nullptr;
- }
-
PWINDOW->m_bReadyToDelete = true;
if (!PWINDOW->m_bFadingOut) {