aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBocklage, Jens <Jens_Bocklage@mentor.com>2016-11-03 16:38:56 +0100
committerBocklage, Jens <Jens_Bocklage@mentor.com>2016-11-03 16:38:56 +0100
commit6656309e1ddf27c3e62fe5d599bee2beeddcbff1 (patch)
tree9f36a8682734bad8cb792d8bb7e6c232d67886a9
parentf1de82b82538e143bd46fd216ccc62e1f1b0f983 (diff)
HomeScreen main surface has to have the surface id 1000!
Use QT_IVI_SURFACE_ID=1000 QT_WAYLAND_SHELL_INTEGRATION="ivi-shell" ./HomeScreen & to launch HomeScreen. Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
-rw-r--r--WindowManager/src/windowmanager.cpp76
-rw-r--r--WindowManager/src/windowmanager.hpp6
-rw-r--r--interfaces/windowmanager.xml7
3 files changed, 23 insertions, 66 deletions
diff --git a/WindowManager/src/windowmanager.cpp b/WindowManager/src/windowmanager.cpp
index 26d650f..765ae4f 100644
--- a/WindowManager/src/windowmanager.cpp
+++ b/WindowManager/src/windowmanager.cpp
@@ -33,6 +33,10 @@
#define WINDOWMANAGER_LAYER_NUM 3
+// the HomeScreen app has to have the surface id 1000
+#define WINDOWMANAGER_HOMESCREEN_MAIN_SURFACE_ID 1000
+
+
void* WindowManager::myThis = 0;
WindowManager::WindowManager(QObject *parent) :
@@ -40,8 +44,7 @@ WindowManager::WindowManager(QObject *parent) :
m_layouts(),
m_surfaces(),
mp_layoutAreaToSurfaceIdAssignment(0),
- m_currentLayout(-1),
- m_homeScreenPid(-1)
+ m_currentLayout(-1)
{
qDebug("-=[WindowManager]=-");
// publish windowmanager interface
@@ -160,7 +163,7 @@ void WindowManager::addSurfaceToLayer(int surfaceId, int layerId)
ilm_getScreenResolution(screenID, &width, &height);
ilm_surfaceSetDestinationRectangle(surfaceId, 0, 0, width, height);
- ilm_surfaceSetSourceRectangle(surfaceId, 0, 0, surfaceProperties.origSourceWidth, surfaceProperties.origSourceHeight);
+ ilm_surfaceSetSourceRectangle(surfaceId, 0, 0, width, height);
ilm_surfaceSetOpacity(surfaceId, 1.0);
ilm_surfaceSetVisibility(surfaceId, ILM_TRUE);
@@ -282,15 +285,11 @@ void WindowManager::notificationFunc_non_static(ilmObjectType object,
qDebug(" origSourceWidth : %d", surfaceProperties.origSourceWidth);
qDebug(" origSourceHeight: %d", surfaceProperties.origSourceHeight);
- if (m_homeScreenPid == surfaceProperties.creatorPid)
+ if (WINDOWMANAGER_HOMESCREEN_MAIN_SURFACE_ID == id)
{
- if (m_homeScreenSurfaceId != id)
- {
- qDebug("HomeScreen app detected");
- m_homeScreenSurfaceId = id;
- addSurfaceToLayer(id, WINDOWMANAGER_LAYER_HOMESCREEN);
- updateScreen();
- }
+ qDebug("HomeScreen app detected");
+ addSurfaceToLayer(id, WINDOWMANAGER_LAYER_HOMESCREEN);
+ updateScreen();
}
else
{
@@ -335,26 +334,35 @@ void WindowManager::surfaceCallbackFunction_non_static(t_ilm_surface surface,
{
qDebug("ILM_NOTIFICATION_VISIBILITY");
}
-
if (ILM_NOTIFICATION_OPACITY & mask)
{
qDebug("ILM_NOTIFICATION_OPACITY");
}
-
if (ILM_NOTIFICATION_ORIENTATION & mask)
{
qDebug("ILM_NOTIFICATION_ORIENTATION");
}
-
if (ILM_NOTIFICATION_SOURCE_RECT & mask)
{
qDebug("ILM_NOTIFICATION_SOURCE_RECT");
}
-
if (ILM_NOTIFICATION_DEST_RECT & mask)
{
qDebug("ILM_NOTIFICATION_DEST_RECT");
}
+ if (ILM_NOTIFICATION_CONTENT_AVAILABLE & mask)
+ {
+ qDebug("ILM_NOTIFICATION_CONTENT_AVAILABLE");
+ }
+ if (ILM_NOTIFICATION_CONTENT_REMOVED & mask)
+ {
+ qDebug("ILM_NOTIFICATION_CONTENT_REMOVED");
+ }
+ if (ILM_NOTIFICATION_CONFIGURED & mask)
+ {
+ qDebug("ILM_NOTIFICATION_CONFIGURED");
+ updateScreen();
+ }
}
void WindowManager::surfaceCallbackFunction_static(t_ilm_surface surface,
@@ -366,44 +374,6 @@ void WindowManager::surfaceCallbackFunction_static(t_ilm_surface surface,
}
#endif
-
-int WindowManager::homeScreenPid() const
-{
- return m_homeScreenPid;
-}
-
-void WindowManager::setHomeScreenPid(int value)
-{
- m_homeScreenPid = value;
-#ifdef __arm__
- // maybe the HomeSceen app has already provided its surface.
- // if so, shift it to the correct layer
- // find the current used layout
- QList<int>::iterator ci = m_surfaces.begin();
-
- struct ilmSurfaceProperties surfaceProperties;
- bool found = false;
- while ((!found) && (ci != m_surfaces.constEnd()))
- {
- ilm_getPropertiesOfSurface(*ci, &surfaceProperties);
- if (m_homeScreenPid == surfaceProperties.creatorPid)
- {
- qDebug("HomeScreen app detected");
- m_homeScreenSurfaceId = *ci;
- addSurfaceToLayer(*ci, WINDOWMANAGER_LAYER_HOMESCREEN);
- m_surfaces.erase(ci);
- found = true;
- updateScreen();
- }
-
- ++ci;
- }
-#endif
-
- updateScreen();
- dumpScene();
-}
-
int WindowManager::layoutId() const
{
return m_currentLayout;
diff --git a/WindowManager/src/windowmanager.hpp b/WindowManager/src/windowmanager.hpp
index 027344b..fce5937 100644
--- a/WindowManager/src/windowmanager.hpp
+++ b/WindowManager/src/windowmanager.hpp
@@ -46,8 +46,6 @@ private:
QMap<int, unsigned int> *mp_layoutAreaToSurfaceIdAssignment;
int m_currentLayout;
- int m_homeScreenPid;
- int m_homeScreenSurfaceId;
void dumpScene();
@@ -86,10 +84,6 @@ public slots:
// from windowmanager_adapter.h
public: // PROPERTIES
- Q_PROPERTY(int homeScreenPid READ homeScreenPid WRITE setHomeScreenPid)
- int homeScreenPid() const;
- void setHomeScreenPid(int value);
-
Q_PROPERTY(int layoutId READ layoutId)
int layoutId() const;
diff --git a/interfaces/windowmanager.xml b/interfaces/windowmanager.xml
index 67187ac..80f2a19 100644
--- a/interfaces/windowmanager.xml
+++ b/interfaces/windowmanager.xml
@@ -146,13 +146,6 @@
<arg name="surfaceIds" type="a(i)" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;int&gt;"/>
</method>
-
- <!--
- homeScreenPid:
- The PID of the Home Screen app. The Home Screen app requires a special handling.
- It will always be visible in the background. So it will be placed in a special layer at the lowest z-order.
- -->
- <property name="homeScreenPid" type="i" access="readwrite"/>
</interface>
</node>