error occurs in client using GENIVI-Layermanagement 63/27663/3
authorRyota Okubi <ryota.okubi@mail.toyota-td.jp>
Wed, 17 Sep 2014 08:48:25 +0000 (17:48 +0900)
committerMikko Ylinen <mikko.ylinen@intel.com>
Thu, 2 Oct 2014 11:25:17 +0000 (04:25 -0700)
The client which is creating Surface by weston-ivi-shell of
GENIVI-LayerManagement is completed in an error.

Change-Id: I9f0f4341535726fe456309fc7cc1818fd71ac451
Signed-off-by: Ryota Okubi <ryota.okubi@mail.toyota-td.jp>
lib/system-controller/CicoSCWlWinMgrIF.cpp
lib/system-controller/CicoSCWlWinMgrIF.h

index 7951e91..64193a7 100644 (file)
@@ -897,8 +897,14 @@ CicoSCWlWinMgrIF::wlIviAppNativeShellInfoCB(void *data,
     struct creation_surface_wait    *tp;
     struct creation_surface_wait    *tp2;
 
-    ICO_TRA("CicoSCWlWinMgrIF::wlIviAppNativeShellInfoCB: Enter(%d,<%s>)",
-            pid, title ? title : "(null)");
+    ICO_TRA("CicoSCWlWinMgrIF::wlIviAppNativeShellInfoCB: Enter(%d,<%s>,%08x)",
+            pid, title ? title : "(null)", id_surface);
+
+    if (id_surface != 0)    {
+        ICO_TRA("CicoSCWlWinMgrIF::wlIviAppNativeShellInfoCB: Leave(%08x is ivi-surface)",
+                id_surface);
+        return;
+    }
 
     if (NULL == data) {
         ICO_WRN("CicoSCWlWinMgrIF::wlIviAppNativeShellInfoCB: Leave(data is null)");
@@ -1170,7 +1176,7 @@ CicoSCWlWinMgrIF::wlIviCtrlNativeHandleCB(void *data,
         // create ivi-surface and bind to wl_surface
         m_id_surface ++;
         if (m_id_surface >= 0x00ffffff)     m_id_surface = 1;
-        id_surface = m_id_surface | 0x40000000;
+        id_surface = m_id_surface | SCWINMGR_GENIVI_NATIVE_SURFACE_ID;
 
         ICO_TRA("CicoSCWlWinMgrIF::wlIviCtrlNativeHandleCB: "
                 "call ivi_application_surface_create(%08x)", id_surface);
index b8a7d2c..865fcf0 100644 (file)
@@ -33,6 +33,8 @@
  *  @brief  This class is wayland interface of multi window manager
  */
 //--------------------------------------------------------------------------
+#define SCWINMGR_GENIVI_NATIVE_SURFACE_ID   0x40000000
+
 struct creation_surface_wait    {
     struct creation_surface_wait    *next;
     int32_t     pid;