summaryrefslogtreecommitdiffstats
path: root/src/applist.cpp
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2019-03-13 18:02:37 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2019-04-01 11:55:02 +0900
commit8fdfc4b8e8cb61f2c2a59040d02ab840d56e1dda (patch)
treef070dda3cac4b0c0b2cb9b8cb8476a260be3a831 /src/applist.cpp
parentf0b7ade0769bcf48b7059f5020d9a233fd36e622 (diff)
Fix xdg-launcher doesn't show upguppy_7.0.1guppy/7.0.17.0.1
xdg-launcher calls "subscribe" before requestSurface, then windowmanager reject it because WMClient object is not created yet. This patch changes to register WMClient if it is not created when App calls "subscribe". Application doesn't need to care about the order of "requestSurface" and "subscribe". Bug-AGL: SPEC-2218 Change-Id: Ia82ff939dfdb2bbfd377bd50fd3d4b844451cd3b Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
Diffstat (limited to 'src/applist.cpp')
-rw-r--r--src/applist.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/applist.cpp b/src/applist.cpp
index 67980f1..473d687 100644
--- a/src/applist.cpp
+++ b/src/applist.cpp
@@ -82,6 +82,27 @@ void AppList::addClient(const string &appid, unsigned layer, const string &role)
}
/**
+ * Add Client to the list
+ *
+ * This function is overload function.
+ * But this function just register application.
+ * So an application does not have role, surface, layer.
+ * Client need to register role and layer afterward.
+ *
+ * @param string[in] Application id. This will be the key to withdraw the information.
+ * @return None
+ * @attention This function should be called once for the app
+ * Caller should take care not to be called more than once.
+ */
+void AppList::addClient(const string &appid)
+{
+ std::lock_guard<std::mutex> lock(this->mtx);
+ shared_ptr<WMClient> client = std::make_shared<WMClient>(appid, 0, "");
+ this->app2client[appid] = client;
+ this->clientDump();
+}
+
+/**
* Remove WMClient from the list
*
* @param string[in] Application id. This will be the key to withdraw the information.