1777105168efb394efa9a341320636c9f595e482
[AGL/meta-agl-demo.git] / recipes-qt / qt5 / qtwayland / 0002-Fix-multiple-QWindow.patch
1 From 23534d35587a8b62c945fef1adb29109e5c01bfa Mon Sep 17 00:00:00 2001
2 From: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com>
3 Date: Fri, 6 Nov 2015 09:59:48 +0900
4 Subject: [PATCH 2/2] Fix multiple QWindow
5
6 Signed-off-by: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com>
7 ---
8  .../ivi-shell/qwaylandivishellintegration.cpp            | 16 ++++++++++------
9  .../ivi-shell/qwaylandivishellintegration.h              |  1 +
10  2 files changed, 11 insertions(+), 6 deletions(-)
11
12 diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp
13 index 763fafb..c42f283 100644
14 --- a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp
15 +++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp
16 @@ -58,6 +58,7 @@ namespace QtWaylandClient {
17
18  QWaylandIviShellIntegration::QWaylandIviShellIntegration()
19      : m_iviApplication(Q_NULLPTR)
20 +    , m_surfaceId(0)
21  {
22  }
23
24 @@ -79,15 +80,18 @@ QWaylandShellSurface *QWaylandIviShellIntegration::createShellSurface(QWaylandWi
25      if (!m_iviApplication)
26          return Q_NULLPTR;
27
28 -    uint32_t id = 0;
29 -    QVariant value = window->property("IVI-Surface-ID");
30 -    if (value.isValid()) {
31 -        id = value.toUInt();
32 +    if (m_surfaceId == 0) {
33 +        QVariant value = window->property("IVI-Surface-ID");
34 +        if (value.isValid()) {
35 +            m_surfaceId = value.toUInt();
36 +        } else {
37 +            m_surfaceId = IVI_SURFACE_ID + getpid();
38 +        }
39      } else {
40 -        id = IVI_SURFACE_ID + getpid();
41 +        m_surfaceId++;
42      }
43
44 -    struct ivi_surface *surface = m_iviApplication->surface_create(id, window->object());
45 +    struct ivi_surface *surface = m_iviApplication->surface_create(m_surfaceId, window->object());
46
47      return new QWaylandIviSurface(surface, window);
48  }
49 diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h
50 index 4856ec6..1d10e91 100644
51 --- a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h
52 +++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h
53 @@ -70,6 +70,7 @@ private:
54
55  private:
56      QtWayland::ivi_application *m_iviApplication;
57 +    uint32_t m_surfaceId;
58  };
59
60  }
61 --
62 1.8.3.1