Improve app switching logic
This MR improves app-id
tracking for apps which advertise a different app-id
than the value we can infer from the corresponding .desktop
file.
It also makes the launcher
module the only component responsible of launching
apps so we can more easily keep track of running apps, and ensures the
previously visible application is displayed when the currently focused window is
destroyed so users don't face an unexpected behavior.
Finally, it cleans up some of the code in order to get rid of compilation warnings.