From 851a01767850b49b4c691a1694252530857e8518 Mon Sep 17 00:00:00 2001 From: David Redondo Date: Fri, 28 Apr 2023 13:17:42 +0200 Subject: eglwindow: update integration in a connection instead of reinit Since m_clientBufferIntegration is not initialized from QWaylandWindow::initSurface it doesn't make sense to update it in reinit. It needs to update the member regardless of reinit is called or not. Change-Id: I1d6a6f1818cf8cdedafaa6375292d96c21c9b527 Reviewed-by: David Edmundson --- .../client/wayland-egl/qwaylandeglwindow.cpp | 10 ++++------ .../client/wayland-egl/qwaylandeglwindow_p.h | 1 - 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp index ca7d58f3..4d7d4787 100644 --- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp +++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp @@ -24,6 +24,10 @@ QWaylandEglWindow::QWaylandEglWindow(QWindow *window, QWaylandDisplay *display) , m_clientBufferIntegration(static_cast(mDisplay->clientBufferIntegration())) , m_format(window->requestedFormat()) { + connect(display, &QWaylandDisplay::reconnected, this, [this] { + m_clientBufferIntegration = static_cast( + mDisplay->clientBufferIntegration()); + }); } QWaylandEglWindow::~QWaylandEglWindow() @@ -140,12 +144,6 @@ void QWaylandEglWindow::invalidateSurface() m_contentFBO = nullptr; } -void QWaylandEglWindow::reinit() -{ - QWaylandWindow::reinit(); - m_clientBufferIntegration = static_cast(mDisplay->clientBufferIntegration()); -} - EGLSurface QWaylandEglWindow::eglSurface() const { return m_eglSurface; diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h index cfcdd577..5b9aa987 100644 --- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h +++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h @@ -50,7 +50,6 @@ public: void bindContentFBO(); void invalidateSurface() override; - void reinit() override; private: QWaylandEglClientBufferIntegration *m_clientBufferIntegration = nullptr; -- cgit v1.2.1