summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-04-18 22:07:42 +0200
committerLiang Qi <liang.qi@qt.io>2017-04-18 22:07:42 +0200
commitdcff152a9b010455af1c1a29e5470f1350a48fe3 (patch)
treeb0eb2f1a8b1a3aa9ecdbd02ce936ae26eefcd992 /src
parent5f62af28b2238097f99119317cd708d68ac1249b (diff)
parenta92eab837f7a7088ddd26bda2bb10d47c9c12142 (diff)
downloadqtwayland-dcff152a9b010455af1c1a29e5470f1350a48fe3.tar.gz
Merge remote-tracking branch 'origin/5.8' into 5.9
Change-Id: I436178527be54fd0efa6ffbe39918740d4737478
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/protocol/qt_attribution.json4
-rw-r--r--src/compositor/extensions/qwaylandivisurfaceintegration.cpp5
-rw-r--r--src/compositor/extensions/qwaylandivisurfaceintegration_p.h1
-rw-r--r--src/compositor/extensions/qwaylandquickshellsurfaceitem.cpp9
-rw-r--r--src/compositor/extensions/qwaylandwlshellintegration.cpp5
-rw-r--r--src/compositor/extensions/qwaylandwlshellintegration_p.h1
-rw-r--r--src/compositor/extensions/qwaylandxdgshellv5integration.cpp11
-rw-r--r--src/compositor/extensions/qwaylandxdgshellv5integration_p.h3
-rw-r--r--src/hardwareintegration/client/brcm-egl/brcm-egl.pri4
-rw-r--r--src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp4
-rw-r--r--src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri4
11 files changed, 39 insertions, 12 deletions
diff --git a/src/3rdparty/protocol/qt_attribution.json b/src/3rdparty/protocol/qt_attribution.json
index 76fd33d3..f35dec4f 100644
--- a/src/3rdparty/protocol/qt_attribution.json
+++ b/src/3rdparty/protocol/qt_attribution.json
@@ -26,9 +26,9 @@
"Files": "ivi-controller.xml ivi-application.xml",
"Description": "\"Wayland IVI Extension\" is forked from IVI Layer Management to define a common set of APIs by wayland style protocol and provide reference implementation which can be loaded on Weston.",
- "Homepage": "http://projects.genivi.org/wayland-ivi-extension",
+ "Homepage": "https://at.projects.genivi.org/wiki/display/WIE/Wayland+IVI+Extension+Home",
"Version": "1.9.1",
- "DownloadLocation": "http://git.projects.genivi.org/?p=wayland-ivi-extension.git;a=commit;h=44598504503eea5ac7f94c88477a5a78bda01f30",
+ "DownloadLocation": "https://github.com/GENIVI/wayland-ivi-extension/releases/tag/1.9.1",
"LicenseId": "MIT",
"License": "MIT License",
"LicenseFile": "MIT_LICENSE.txt",
diff --git a/src/compositor/extensions/qwaylandivisurfaceintegration.cpp b/src/compositor/extensions/qwaylandivisurfaceintegration.cpp
index 3a3d9c1c..88b727df 100644
--- a/src/compositor/extensions/qwaylandivisurfaceintegration.cpp
+++ b/src/compositor/extensions/qwaylandivisurfaceintegration.cpp
@@ -54,6 +54,11 @@ IviSurfaceIntegration::IviSurfaceIntegration(QWaylandQuickShellSurfaceItem *item
connect(m_shellSurface, &QWaylandIviSurface::destroyed, this, &IviSurfaceIntegration::handleIviSurfaceDestroyed);
}
+IviSurfaceIntegration::~IviSurfaceIntegration()
+{
+ m_item->setSurface(nullptr);
+}
+
void IviSurfaceIntegration::handleIviSurfaceDestroyed()
{
m_shellSurface = nullptr;
diff --git a/src/compositor/extensions/qwaylandivisurfaceintegration_p.h b/src/compositor/extensions/qwaylandivisurfaceintegration_p.h
index 534caf64..eaccd959 100644
--- a/src/compositor/extensions/qwaylandivisurfaceintegration_p.h
+++ b/src/compositor/extensions/qwaylandivisurfaceintegration_p.h
@@ -61,6 +61,7 @@ class IviSurfaceIntegration : public QWaylandQuickShellIntegration
Q_OBJECT
public:
IviSurfaceIntegration(QWaylandQuickShellSurfaceItem *item);
+ ~IviSurfaceIntegration();
private Q_SLOTS:
void handleIviSurfaceDestroyed();
diff --git a/src/compositor/extensions/qwaylandquickshellsurfaceitem.cpp b/src/compositor/extensions/qwaylandquickshellsurfaceitem.cpp
index 91f9d777..64d89561 100644
--- a/src/compositor/extensions/qwaylandquickshellsurfaceitem.cpp
+++ b/src/compositor/extensions/qwaylandquickshellsurfaceitem.cpp
@@ -112,7 +112,14 @@ void QWaylandQuickShellSurfaceItem::setShellSurface(QWaylandShellSurface *shellS
d->m_shellSurface = shellSurface;
- d->m_shellIntegration = shellSurface->createIntegration(this);
+ if (d->m_shellIntegration) {
+ delete d->m_shellIntegration;
+ d->m_shellIntegration = nullptr;
+ }
+
+ if (shellSurface)
+ d->m_shellIntegration = shellSurface->createIntegration(this);
+
emit shellSurfaceChanged();
}
diff --git a/src/compositor/extensions/qwaylandwlshellintegration.cpp b/src/compositor/extensions/qwaylandwlshellintegration.cpp
index b3241676..c3d278a5 100644
--- a/src/compositor/extensions/qwaylandwlshellintegration.cpp
+++ b/src/compositor/extensions/qwaylandwlshellintegration.cpp
@@ -68,6 +68,11 @@ WlShellIntegration::WlShellIntegration(QWaylandQuickShellSurfaceItem *item)
connect(m_shellSurface.data(), &QWaylandWlShellSurface::destroyed, this, &WlShellIntegration::handleShellSurfaceDestroyed);
}
+WlShellIntegration::~WlShellIntegration()
+{
+ m_item->setSurface(nullptr);
+}
+
void WlShellIntegration::handleStartMove(QWaylandSeat *seat)
{
grabberState = GrabberState::Move;
diff --git a/src/compositor/extensions/qwaylandwlshellintegration_p.h b/src/compositor/extensions/qwaylandwlshellintegration_p.h
index 814f5e12..15aec01c 100644
--- a/src/compositor/extensions/qwaylandwlshellintegration_p.h
+++ b/src/compositor/extensions/qwaylandwlshellintegration_p.h
@@ -61,6 +61,7 @@ class WlShellIntegration : public QWaylandQuickShellIntegration
Q_OBJECT
public:
WlShellIntegration(QWaylandQuickShellSurfaceItem *item);
+ ~WlShellIntegration();
bool mouseMoveEvent(QMouseEvent *event) override;
bool mouseReleaseEvent(QMouseEvent *event) override;
diff --git a/src/compositor/extensions/qwaylandxdgshellv5integration.cpp b/src/compositor/extensions/qwaylandxdgshellv5integration.cpp
index e2aa6b3e..156d5679 100644
--- a/src/compositor/extensions/qwaylandxdgshellv5integration.cpp
+++ b/src/compositor/extensions/qwaylandxdgshellv5integration.cpp
@@ -65,6 +65,11 @@ XdgShellV5Integration::XdgShellV5Integration(QWaylandQuickShellSurfaceItem *item
connect(m_xdgSurface->surface(), &QWaylandSurface::sizeChanged, this, &XdgShellV5Integration::handleSurfaceSizeChanged);
}
+XdgShellV5Integration::~XdgShellV5Integration()
+{
+ m_item->setSurface(nullptr);
+}
+
bool XdgShellV5Integration::mouseMoveEvent(QMouseEvent *event)
{
if (grabberState == GrabberState::Resize) {
@@ -190,6 +195,7 @@ void XdgShellV5Integration::handleSurfaceSizeChanged()
XdgPopupV5Integration::XdgPopupV5Integration(QWaylandQuickShellSurfaceItem *item)
: QWaylandQuickShellIntegration (item)
+ , m_item(item)
, m_xdgPopup(qobject_cast<QWaylandXdgPopupV5 *>(item->shellSurface()))
, m_xdgShell(QWaylandXdgPopupV5Private::get(m_xdgPopup)->m_xdgShell)
{
@@ -206,6 +212,11 @@ XdgPopupV5Integration::XdgPopupV5Integration(QWaylandQuickShellSurfaceItem *item
connect(m_xdgPopup, &QWaylandXdgPopupV5::destroyed, this, &XdgPopupV5Integration::handlePopupDestroyed);
}
+XdgPopupV5Integration::~XdgPopupV5Integration()
+{
+ m_item->setSurface(nullptr);
+}
+
void XdgPopupV5Integration::handlePopupDestroyed()
{
QWaylandXdgShellV5Private *shellPrivate = QWaylandXdgShellV5Private::get(m_xdgShell);
diff --git a/src/compositor/extensions/qwaylandxdgshellv5integration_p.h b/src/compositor/extensions/qwaylandxdgshellv5integration_p.h
index 6f02ab39..90c425e6 100644
--- a/src/compositor/extensions/qwaylandxdgshellv5integration_p.h
+++ b/src/compositor/extensions/qwaylandxdgshellv5integration_p.h
@@ -60,6 +60,7 @@ class XdgShellV5Integration : public QWaylandQuickShellIntegration
Q_OBJECT
public:
XdgShellV5Integration(QWaylandQuickShellSurfaceItem *item);
+ ~XdgShellV5Integration();
bool mouseMoveEvent(QMouseEvent *event) override;
bool mouseReleaseEvent(QMouseEvent *event) override;
@@ -111,11 +112,13 @@ class XdgPopupV5Integration : public QWaylandQuickShellIntegration
Q_OBJECT
public:
XdgPopupV5Integration(QWaylandQuickShellSurfaceItem *item);
+ ~XdgPopupV5Integration();
private Q_SLOTS:
void handlePopupDestroyed();
private:
+ QWaylandQuickShellSurfaceItem *m_item;
QWaylandXdgPopupV5 *m_xdgPopup;
QWaylandXdgShellV5 *m_xdgShell;
};
diff --git a/src/hardwareintegration/client/brcm-egl/brcm-egl.pri b/src/hardwareintegration/client/brcm-egl/brcm-egl.pri
index 3961f4f1..f9f8d072 100644
--- a/src/hardwareintegration/client/brcm-egl/brcm-egl.pri
+++ b/src/hardwareintegration/client/brcm-egl/brcm-egl.pri
@@ -1,10 +1,8 @@
INCLUDEPATH += $$PWD
-QMAKE_USE += egl wayland-client
+QMAKE_USE += egl wayland-client libdl
QT += egl_support-private
-LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD
-
SOURCES += $$PWD/qwaylandbrcmeglintegration.cpp \
$$PWD/qwaylandbrcmglcontext.cpp \
$$PWD/qwaylandbrcmeglwindow.cpp
diff --git a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp
index 22618b4a..9842f61c 100644
--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp
+++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp
@@ -252,9 +252,7 @@ void QWaylandBrcmEglWindow::swapBuffers()
return;
m_buffers[m_current]->bind();
- attach(m_buffers[m_current], 0, 0);
- damage(QRect(QPoint(), geometry().size()));
- wl_surface::commit();
+ commit(m_buffers[m_current], QRegion(0, 0, geometry().size().width(), geometry().size().height()));
m_current = (m_current + 1) % m_count;
m_buffers[m_current]->waitForRelease();
diff --git a/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri b/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
index 2307319a..a2f5376a 100644
--- a/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
+++ b/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
@@ -1,9 +1,7 @@
INCLUDEPATH += $$PWD
include ($$PWD/../xcomposite_share/xcomposite_share.pri)
-QMAKE_USE += wayland-client glx
-
-LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD
+QMAKE_USE += wayland-client glx libdl
QT += glx_support-private