Refresh a retained portal when starting a Ferese session
This commit is contained in:
1 parent
9754326f1d
commit
84b03be53e
3 files changed
+10
-2
No files matched your search
@@ -19,7 +19,9 @@ session helper activates `ferese-session.target` after exporting the compositor'
|
|||||||
Wayland display, and stops it when the shell exits. This keeps
|
Wayland display, and stops it when the shell exits. This keeps
|
||||||
`graphical-session.target` active so desktop portals can start. The native portal
|
`graphical-session.target` active so desktop portals can start. The native portal
|
||||||
is D-Bus activated and supervised by systemd; it stops with the session so a
|
is D-Bus activated and supervised by systemd; it stops with the session so a
|
||||||
previous release cannot remain running after logout. Nested previews
|
previous release cannot remain running after logout. Session startup also refreshes
|
||||||
|
an already-running native portal after importing the current display environment.
|
||||||
|
Nested previews
|
||||||
do not alter the host's activation environment or session targets.
|
do not alter the host's activation environment or session targets.
|
||||||
|
|
||||||
### Fedora
|
### Fedora
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ if [[ ${FERESE_SESSION_IMPORT_ENV:-0} == 1 ]]; then
|
|||||||
systemctl --user daemon-reload || true
|
systemctl --user daemon-reload || true
|
||||||
if systemctl --user start ferese-session.target; then
|
if systemctl --user start ferese-session.target; then
|
||||||
session_target_started=1
|
session_target_started=1
|
||||||
|
# A user manager can retain the target across session transitions.
|
||||||
|
# Refresh an already-running portal after importing this session's
|
||||||
|
# environment so it uses the installed release and current display.
|
||||||
|
systemctl --user try-restart xdg-desktop-portal-ferese.service || true
|
||||||
else
|
else
|
||||||
echo 'Ferese: graphical session target could not start; portal activation may be unavailable.' >&2
|
echo 'Ferese: graphical session target could not start; portal activation may be unavailable.' >&2
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -48,7 +48,8 @@ class SessionStartupTest(unittest.TestCase):
|
|||||||
status, events = self.run_session(shell_status=7)
|
status, events = self.run_session(shell_status=7)
|
||||||
self.assertEqual(status, 7)
|
self.assertEqual(status, 7)
|
||||||
self.assertEqual(events, ['import:public-display', 'reload-bus', '--user daemon-reload',
|
self.assertEqual(events, ['import:public-display', 'reload-bus', '--user daemon-reload',
|
||||||
'--user start ferese-session.target', 'shell:77',
|
'--user start ferese-session.target',
|
||||||
|
'--user try-restart xdg-desktop-portal-ferese.service', 'shell:77',
|
||||||
'--user stop ferese-session.target'])
|
'--user stop ferese-session.target'])
|
||||||
|
|
||||||
def test_nested_session_never_changes_host_activation(self):
|
def test_nested_session_never_changes_host_activation(self):
|
||||||
@@ -61,6 +62,7 @@ class SessionStartupTest(unittest.TestCase):
|
|||||||
self.assertEqual(status, 0)
|
self.assertEqual(status, 0)
|
||||||
self.assertIn('shell:77', events)
|
self.assertIn('shell:77', events)
|
||||||
self.assertNotIn('--user stop ferese-session.target', events)
|
self.assertNotIn('--user stop ferese-session.target', events)
|
||||||
|
self.assertNotIn('--user try-restart xdg-desktop-portal-ferese.service', events)
|
||||||
|
|
||||||
def test_termination_stops_the_session_target(self):
|
def test_termination_stops_the_session_target(self):
|
||||||
status, events = self.run_session(terminate=True)
|
status, events = self.run_session(terminate=True)
|
||||||
|
|||||||
Reference in new issue
Block a user