diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index 5830c136..5b2236ee 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -93,6 +93,11 @@ QWaylandWindow::~QWaylandWindow() if (mSurface) reset(false); + if (mFrameCallback) { + wl_callback_destroy(mFrameCallback); + mFrameCallback = nullptr; + } + const QWindow *parent = window(); const auto tlw = QGuiApplication::topLevelWindows(); for (QWindow *w : tlw) { @@ -250,11 +255,6 @@ void QWaylandWindow::reset(bool sendDestroyEvent) mSurface.reset(); } - if (mFrameCallback) { - wl_callback_destroy(mFrameCallback); - mFrameCallback = nullptr; - } - int timerId = mFrameCallbackTimerId.fetchAndStoreOrdered(-1); if (timerId != -1) { killTimer(timerId);