shell-desktop.h: Avoid mass activation of applications from 04/24904/1 10.91.0 10.92.0 10.93.0 11.91.0 11.92.0 12.90.0 9.99.2 9.99.3 9.99.4 jellyfish/9.99.2 jellyfish/9.99.3 jellyfish/9.99.4 jellyfish_9.99.2 jellyfish_9.99.3 jellyfish_9.99.4 koi/10.91.0 koi/10.92.0 koi/10.93.0 koi_10.91.0 koi_10.92.0 koi_10.93.0 lamprey/11.91.0 lamprey/11.92.0 lamprey_11.91.0 lamprey_11.92.0 marlin/12.90.0 marlin_12.90.0
authorMarius Vlad <marius.vlad@collabora.com>
Mon, 29 Jun 2020 20:54:18 +0000 (23:54 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Mon, 29 Jun 2020 21:03:27 +0000 (00:03 +0300)
application_id event

I failed to realize that the application_id event is sent at binding,
which is not an issue when launcher is the only application running,
but obviously a big one if multiple surfaces are already present, and
launcher is re-started (so not really something we test).
Added also a note to say a few words about that.

We already activate by default surfaces, and we embedded the activation
call-out into the agl_shell_desktop protocol in that tapShortcut QML, so
we don't actually need further handling. This was just a toy example.

Fix indentation while at it.

Bug-AGL: SPEC-3464

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I46889c5fabdb3936089301b92207b896e4c47ae3

launcher/src/shell-desktop.h

index 4ee77df..fbd053b 100644 (file)
@@ -69,18 +69,21 @@ static void
 application_id_event(void *data, struct agl_shell_desktop *agl_shell_desktop,
                     const char *app_id)
 {
-        Shell *aglShell = static_cast<Shell *>(data);
-        (void) agl_shell_desktop;
+       Shell *aglShell = static_cast<Shell *>(data);
+       (void) agl_shell_desktop;
 
-        qInfo() << "app_id: " << app_id;
+       qInfo() << "app_id: " << app_id;
 
        // this ain't necessary in case the default policy API will activate
        // applications by default (when they are started) but if that is not
        // the case we can use this event handler to activate the application
-       // as this event is sent when the application is created (when the
-       // app surface is created that is)
-       QString qstr_app_id = QString::fromUtf8(app_id, -1);
-       aglShell->activate_app(nullptr, qstr_app_id, nullptr);
+       // as this event is sent when the application is created (when the app
+       // surface is created that is); note this event is sent when launcher
+       // binds to the interface for each application present, besides being
+       // adevertised when the application surface is created; so the
+       // following will need some kind of filtering to avoid mass activation
+       //QString qstr_app_id = QString::fromUtf8(app_id, -1);
+       //aglShell->activate_app(nullptr, qstr_app_id, nullptr);
 }
 
 static void