From ac31fb66f46233ba55a414296107637a002b2abd Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Mon, 29 Jun 2020 23:54:18 +0300 Subject: shell-desktop.h: Avoid mass activation of applications from 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 Change-Id: I46889c5fabdb3936089301b92207b896e4c47ae3 --- launcher/src/shell-desktop.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/launcher/src/shell-desktop.h b/launcher/src/shell-desktop.h index 4ee77df..fbd053b 100644 --- a/launcher/src/shell-desktop.h +++ b/launcher/src/shell-desktop.h @@ -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(data); - (void) agl_shell_desktop; + Shell *aglShell = static_cast(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 -- cgit 1.2.3-korg