sample/app: Minor tweaks
authorMarius Vlad <marius.vlad@collabora.com>
Wed, 15 Apr 2020 16:59:11 +0000 (19:59 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Wed, 15 Apr 2020 16:59:11 +0000 (19:59 +0300)
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
sample/app/eventhandler.cpp
sample/app/main.qml

index b4b6a03..17decc4 100644 (file)
@@ -213,6 +213,7 @@ void EventHandler::showWindow(QString id, QString json)
 {
        if (shell_desktop) {
                struct wl_output *output = getWlOutput(qApp->screens().first());
+               qInfo() << "sending activate_app";
                agl_shell_desktop_activate_app(shell_desktop,
                                id.toStdString().c_str(),
                                json.toStdString().c_str(),
index 2feab6d..609c637 100644 (file)
@@ -22,6 +22,9 @@ ApplicationWindow {
     property int pid: -1
     property bool onscreen_role_set: false
 
+    property string mapp_id: ''
+    property string mapp_data_msg: ''
+
     Label {
         id: title
         width: parent.width
@@ -318,6 +321,26 @@ ApplicationWindow {
         onsButton3 = qsTr("")
     }
 
+    Timer {
+               id: activate_timer
+               interval: 500
+               running: false
+               repeat: false
+               onTriggered: {
+                       console.log("calling eventHandler.showWindow for " + mapp_id + " and data msg " + mapp_data_msg)
+                       eventHandler.showWindow(mapp_id, mapp_data_msg)
+                       mapp_id = ''
+                       mapp_data_msg = ''
+               }
+    }
+
+
+    function armTimer(app_id, msg) {
+       mapp_id = app_id
+       mapp_data_msg = msg
+       activate_timer.running = true
+    }
+
     function postMessage() {
         console.log("poster pressed")
         btndata = ""
@@ -354,11 +377,17 @@ ApplicationWindow {
                // we start we also display it using the default policy engine
                pid = eventHandler.start(onsId, postmsg)
                console.log("calling eventHandler.start for " + onsId + " with pid " + pid)
+
+               // this is necessary jus the first time as we don't queue the
+               // 'activate_app' event and pass it over once onscreenapp is
+               // started. It is implementation detail in case it is required
+               console.log("calling armTimer for " + onsId)
+               armTimer(onsId, postmsg)
        } else {
-               // we just need to display it
-               console.log("calling eventHandler.showWindow for " + onsId)
-               eventHandler.showWindow(onsId, postmsg)
+               // onscreenapp is already start we just need to activate + pass the data
+               eventHandler.showWindow(mapp_id, mapp_data_msg)
        }
+
     }
 
     function qmlOnReplyShowWindow(text) {