diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2023-02-15 18:40:03 +0200 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2023-02-15 18:45:05 +0200 |
commit | 4c7852e6ff7fde510f4f11c21bec817583397951 (patch) | |
tree | 1c790b5396f03186636d4a3c7599d5df2156ca4a | |
parent | 7ff53ae1b58a16e7fb7603195e71c510dbec4ae8 (diff) |
homescreenhandler: Avoid using a stale wl_output
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
-rw-r--r-- | homescreen/src/homescreenhandler.cpp | 6 | ||||
-rw-r--r-- | homescreen/src/homescreenhandler.h | 1 |
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; |