diff --git a/src/protocols/TearingControl.cpp b/src/protocols/TearingControl.cpp index 0ed495bd..f3c17bfb 100644 --- a/src/protocols/TearingControl.cpp +++ b/src/protocols/TearingControl.cpp @@ -86,7 +86,12 @@ CTearingControl::CTearingControl(SP resource_, wlr_surface* su resource->setData(this); resource->setOnDestroyHandler([](CWaylandResource* res) { PROTO::tearing->onControllerDestroy(reinterpret_cast(res->data())); }); - pWindow = g_pCompositor->getWindowFromSurface(surf_); + for (auto& w : g_pCompositor->m_vWindows) { + if (w->m_pWLSurface.wlr() == surf_) { + pWindow = w.get(); + break; + } + } } void CTearingControl::onHint(uint32_t hint_) {