sample/app: Allow to hang off data when activating the app
[apps/onscreenapp.git] / sample / app / eventhandler.cpp
index 58f99fc..b4b6a03 100644 (file)
@@ -74,13 +74,24 @@ application_id_event(void *data, struct agl_shell_desktop *agl_shell_desktop,
                return;
 
        qInfo() << "app_id: " << app_id;
+}
 
-       if (strcmp(app_id, "onescreenapp") == 0)
-               emit ev_handler->signalOnReplyShowWindow(app_id);
+static void
+application_state_event(void *data, struct agl_shell_desktop *agl_shell_desktop,
+                       const char *app_id, const char *app_data, uint32_t app_state, uint32_t app_role)
+{
+       /* unused */
+       (void) data;
+       (void) app_id;
+       (void) app_data;
+       (void) app_role;
+       (void) app_state;
+       (void) agl_shell_desktop;
 }
 
 static const struct agl_shell_desktop_listener agl_shell_desk_listener = {
        application_id_event,
+       application_state_event,
 };
 
 static struct agl_shell_desktop *
@@ -202,7 +213,10 @@ void EventHandler::showWindow(QString id, QString json)
 {
        if (shell_desktop) {
                struct wl_output *output = getWlOutput(qApp->screens().first());
-               agl_shell_desktop_activate_app(shell_desktop, id.toStdString().c_str(), output);
+               agl_shell_desktop_activate_app(shell_desktop,
+                               id.toStdString().c_str(),
+                               json.toStdString().c_str(),
+                               output);
        }
 
        qInfo() << "data from json: " << json.toStdString().c_str();
@@ -242,3 +256,14 @@ EventHandler::is_running(const QString &app_id)
 
        return false;
 }
+
+void
+EventHandler::set_window_popup(const QString &app_id, int x, int y)
+{
+       struct wl_output *output = getWlOutput(qApp->screens().first());
+
+       if (shell_desktop)
+               agl_shell_desktop_set_app_property(shell_desktop,
+                               app_id.toStdString().c_str(),
+                               AGL_SHELL_DESKTOP_APP_ROLE_POPUP, x, y, output);
+}