diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2019-08-14 13:10:53 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-08-14 16:14:55 +0200 |
commit | 7362413785e1e199a62320494631f27dd1a4da59 (patch) | |
tree | e4973dbfb9ac67d7e78f6a780c8e41e5667f4099 /src/client | |
parent | ca9be5cab503d85831653d6c4bc9c59bd0f6ad57 (diff) | |
parent | 43d8a3091894ceb4ab934167b2f3eda27564eb6d (diff) |
Merge remote-tracking branch 'qt/5.12' into 5.13
Conflicts:
src/compositor/configure.json
sync.profile
tests/auto/auto.pro
Change-Id: Ia6d1512aa9ad49ac7f92ae88f23026dc0ee2ccc5
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/configure.json | 17 | ||||
-rw-r--r-- | src/client/hardwareintegration/qwaylandserverbufferintegration_p.h | 3 | ||||
-rw-r--r-- | src/client/qwaylandwindow.cpp | 4 | ||||
-rw-r--r-- | src/client/qwaylandwindow_p.h | 1 |
4 files changed, 23 insertions, 2 deletions
diff --git a/src/client/configure.json b/src/client/configure.json index 93c5d4e49..7feeee4bf 100644 --- a/src/client/configure.json +++ b/src/client/configure.json @@ -75,6 +75,11 @@ "type": "compile", "test": "dmabuf_server_buffer", "use": "egl" + }, + "vulkan-server-buffer": { + "label": "Vulkan Buffer Sharing", + "type": "compile", + "test": "vulkan_server_buffer" } }, @@ -153,6 +158,16 @@ "condition": "features.wayland-client && features.opengl && features.egl && tests.dmabuf-server-buffer", "output": [ "privateFeature" ] }, + "wayland-client-texture-sharing-experimental" : { + "label": "Texture sharing (experimental)", + "autoDetect": "false", + "output": [ "privateFeature" ] + }, + "wayland-vulkan-server-buffer": { + "label": "Vulkan-based server buffer integration", + "condition": "features.wayland-client && features.opengl && features.egl && tests.vulkan-server-buffer && features.wayland-client-texture-sharing-experimental", + "output": [ "privateFeature" ] + }, "wayland-shm-emulation-server-buffer": { "label": "Shm emulation server buffer integration", "condition": "features.wayland-client && features.opengl", @@ -179,6 +194,8 @@ "xcomposite-glx", "wayland-drm-egl-server-buffer", "wayland-libhybris-egl-server-buffer", + "wayland-dmabuf-server-buffer", + "wayland-vulkan-server-buffer", "wayland-shm-emulation-server-buffer" ] }, diff --git a/src/client/hardwareintegration/qwaylandserverbufferintegration_p.h b/src/client/hardwareintegration/qwaylandserverbufferintegration_p.h index 632429bef..6833efd0c 100644 --- a/src/client/hardwareintegration/qwaylandserverbufferintegration_p.h +++ b/src/client/hardwareintegration/qwaylandserverbufferintegration_p.h @@ -70,7 +70,8 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandServerBuffer public: enum Format { RGBA32, - A8 + A8, + Custom }; QWaylandServerBuffer(); diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index f61c141c8..7f82136fe 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -344,7 +344,7 @@ void QWaylandWindow::setGeometry(const QRect &rect) mSentInitialResize = true; } QRect exposeGeometry(QPoint(), geometry().size()); - if (exposeGeometry != mLastExposeGeometry) + if (isExposed() && !mInResizeFromApplyConfigure && exposeGeometry != mLastExposeGeometry) sendExposeEvent(exposeGeometry); if (mShellSurface) @@ -359,7 +359,9 @@ void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, cons QRect geometry(windowGeometry().topLeft(), QSize(widthWithoutMargins, heightWithoutMargins)); mOffset += offset; + mInResizeFromApplyConfigure = true; setGeometry(geometry); + mInResizeFromApplyConfigure = false; } void QWaylandWindow::sendExposeEvent(const QRect &rect) diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h index 861392430..9eff738b8 100644 --- a/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h @@ -269,6 +269,7 @@ private: void handleMouseEventWithDecoration(QWaylandInputDevice *inputDevice, const QWaylandPointerEvent &e); void handleScreenChanged(); + bool mInResizeFromApplyConfigure = false; QRect mLastExposeGeometry; static const wl_callback_listener callbackListener; |