summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Redondo <qt@david-redondo.de>2023-04-28 13:17:42 +0200
committerDavid Redondo <qt@david-redondo.de>2023-05-17 07:32:54 +0200
commit851a01767850b49b4c691a1694252530857e8518 (patch)
treeb33906ac57b0d958eccb2502ece2cce9800649ca /src
parent2887b351ed70e1151cb88755ecc63fa99c12b0f1 (diff)
downloadqtwayland-851a01767850b49b4c691a1694252530857e8518.tar.gz
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 <davidedmundson@kde.org>
Diffstat (limited to 'src')
-rw-r--r--src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp10
-rw-r--r--src/hardwareintegration/client/wayland-egl/qwaylandeglwindow_p.h1
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<QWaylandEglClientBufferIntegration *>(mDisplay->clientBufferIntegration()))
, m_format(window->requestedFormat())
{
+ connect(display, &QWaylandDisplay::reconnected, this, [this] {
+ m_clientBufferIntegration = static_cast<QWaylandEglClientBufferIntegration *>(
+ mDisplay->clientBufferIntegration());
+ });
}
QWaylandEglWindow::~QWaylandEglWindow()
@@ -140,12 +144,6 @@ void QWaylandEglWindow::invalidateSurface()
m_contentFBO = nullptr;
}
-void QWaylandEglWindow::reinit()
-{
- QWaylandWindow::reinit();
- m_clientBufferIntegration = static_cast<QWaylandEglClientBufferIntegration *>(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;