aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2023-02-15 18:40:03 +0200
committerMarius Vlad <marius.vlad@collabora.com>2023-04-14 22:44:52 +0300
commitccfd10dda949b70f0df456536e548bf976ae5623 (patch)
tree03a64828a0daa680c5648feacab426b9b76123a5
parentb8786003d749d0fed1dff54dd0fd9862367338f6 (diff)
homescreenhandler: Avoid using a stale wl_outputsandbox/mvlad/update-homescreenoctopus
Rather than storing wl_output when creating a HomeScreenHandler object, retrieve the output at activation. Presumably, we could use Screen and from there get it but seems to be easier this way. Re-plugging the connector back and forth would result in a stale wl_output, so this would retrieve it always as the currently enabled/active one. Bug-AGL: SPEC-4705 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id54c1f253b094e196c6bd367c7419c0ec5860d5f (cherry picked from commit 4c7852e6ff7fde510f4f11c21bec817583397951)
-rw-r--r--homescreen/src/homescreenhandler.cpp6
-rw-r--r--homescreen/src/homescreenhandler.h1
2 files changed, 4 insertions, 3 deletions
diff --git a/homescreen/src/homescreenhandler.cpp b/homescreen/src/homescreenhandler.cpp
index e61f0de..e7d6a39 100644
--- a/homescreen/src/homescreenhandler.cpp
+++ b/homescreen/src/homescreenhandler.cpp
@@ -28,7 +28,6 @@ HomescreenHandler::HomescreenHandler(Shell *_aglShell, ApplicationLauncher *laun
mp_launcher = launcher;
mp_applauncher_client = new AppLauncherClient();
QPlatformNativeInterface *native = qApp->platformNativeInterface();
- m_output = getWlOutput(native, qApp->screens().first());
//
// The "started" event is received any time a start request is made to applaunchd,
@@ -93,13 +92,16 @@ void HomescreenHandler::addAppToStack(const QString& app_id)
void HomescreenHandler::activateApp(const QString& app_id)
{
struct agl_shell *agl_shell = aglShell->shell.get();
+ QPlatformNativeInterface *native = qApp->platformNativeInterface();
+ struct wl_output *mm_output = getWlOutput(native, qApp->screens().first());
if (mp_launcher) {
mp_launcher->setCurrent(app_id);
}
HMI_DEBUG("HomeScreen", "Activating application %s", app_id.toStdString().c_str());
- agl_shell_activate_app(agl_shell, app_id.toStdString().c_str(), m_output);
+
+ agl_shell_activate_app(agl_shell, app_id.toStdString().c_str(), mm_output);
}
void HomescreenHandler::deactivateApp(const QString& app_id)
diff --git a/homescreen/src/homescreenhandler.h b/homescreen/src/homescreenhandler.h
index 751457e..a2baeb2 100644
--- a/homescreen/src/homescreenhandler.h
+++ b/homescreen/src/homescreenhandler.h
@@ -40,7 +40,6 @@ public slots:
private:
ApplicationLauncher *mp_launcher;
AppLauncherClient *mp_applauncher_client;
- struct wl_output *m_output;
Shell *aglShell;