X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=meta-agl-profile-graphical-qt5%2Frecipes-qt%2Fqt5%2Fqtwayland%2F0002-Fix-multiple-QWindow.patch;fp=meta-agl-profile-graphical-qt5%2Frecipes-qt%2Fqt5%2Fqtwayland%2F0002-Fix-multiple-QWindow.patch;h=1777105168efb394efa9a341320636c9f595e482;hb=b43165328658087277b667152fdbc04fe07cba08;hp=0000000000000000000000000000000000000000;hpb=c40ee88f6aa0b379787a9ea3c853a806892e0dd1;p=AGL%2Fmeta-agl.git diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-Fix-multiple-QWindow.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-Fix-multiple-QWindow.patch new file mode 100644 index 000000000..177710516 --- /dev/null +++ b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-Fix-multiple-QWindow.patch @@ -0,0 +1,62 @@ +From 23534d35587a8b62c945fef1adb29109e5c01bfa Mon Sep 17 00:00:00 2001 +From: Nobuhiko Tanibata +Date: Fri, 6 Nov 2015 09:59:48 +0900 +Subject: [PATCH 2/2] Fix multiple QWindow + +Signed-off-by: Nobuhiko Tanibata +--- + .../ivi-shell/qwaylandivishellintegration.cpp | 16 ++++++++++------ + .../ivi-shell/qwaylandivishellintegration.h | 1 + + 2 files changed, 11 insertions(+), 6 deletions(-) + +diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp +index 763fafb..c42f283 100644 +--- a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp ++++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp +@@ -58,6 +58,7 @@ namespace QtWaylandClient { + + QWaylandIviShellIntegration::QWaylandIviShellIntegration() + : m_iviApplication(Q_NULLPTR) ++ , m_surfaceId(0) + { + } + +@@ -79,15 +80,18 @@ QWaylandShellSurface *QWaylandIviShellIntegration::createShellSurface(QWaylandWi + if (!m_iviApplication) + return Q_NULLPTR; + +- uint32_t id = 0; +- QVariant value = window->property("IVI-Surface-ID"); +- if (value.isValid()) { +- id = value.toUInt(); ++ if (m_surfaceId == 0) { ++ QVariant value = window->property("IVI-Surface-ID"); ++ if (value.isValid()) { ++ m_surfaceId = value.toUInt(); ++ } else { ++ m_surfaceId = IVI_SURFACE_ID + getpid(); ++ } + } else { +- id = IVI_SURFACE_ID + getpid(); ++ m_surfaceId++; + } + +- struct ivi_surface *surface = m_iviApplication->surface_create(id, window->object()); ++ struct ivi_surface *surface = m_iviApplication->surface_create(m_surfaceId, window->object()); + + return new QWaylandIviSurface(surface, window); + } +diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h +index 4856ec6..1d10e91 100644 +--- a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h ++++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h +@@ -70,6 +70,7 @@ private: + + private: + QtWayland::ivi_application *m_iviApplication; ++ uint32_t m_surfaceId; + }; + + } +-- +1.8.3.1