summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2019-08-14 13:10:53 +0200
committerLiang Qi <liang.qi@qt.io>2019-08-14 16:14:55 +0200
commit7362413785e1e199a62320494631f27dd1a4da59 (patch)
treee4973dbfb9ac67d7e78f6a780c8e41e5667f4099 /src/client
parentca9be5cab503d85831653d6c4bc9c59bd0f6ad57 (diff)
parent43d8a3091894ceb4ab934167b2f3eda27564eb6d (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.json17
-rw-r--r--src/client/hardwareintegration/qwaylandserverbufferintegration_p.h3
-rw-r--r--src/client/qwaylandwindow.cpp4
-rw-r--r--src/client/qwaylandwindow_p.h1
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;