main: Use session mode property for welcome dialog

We only want to show the welcome dialog in the user session, not
on the login screen or during initial setup. We currently achieve
that by explicitly checking for those mode names, but there are
other modes like gnome-classic where the dialog is equally un-
helpful. Support those cases by adding a session mode property
that determines whether the welcome dialog should be enabled,
so that modes can opt in or out of the feature themselves.

(Both the 'gdm' and 'initial-setup' modes are based on the
'restricted' mode, so this change does not affect them)

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4026

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1793>
This commit is contained in:
Florian Müllner 2021-04-05 19:36:29 +02:00 committed by Marge Bot
parent d5af1fa098
commit e6be180df1
2 changed files with 3 additions and 2 deletions

View File

@ -293,8 +293,7 @@ function _initializeUI() {
if (credentials.get_unix_user() === 0) { if (credentials.get_unix_user() === 0) {
notify(_('Logged in as a privileged user'), notify(_('Logged in as a privileged user'),
_('Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user.')); _('Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user.'));
} else if (sessionMode.currentMode !== 'gdm' && } else if (sessionMode.showWelcomeDialog) {
sessionMode.currentMode !== 'initial-setup') {
_handleShowWelcomeScreen(); _handleShowWelcomeScreen();
} }

View File

@ -19,6 +19,7 @@ const _modes = {
themeResourceName: 'gnome-shell-theme.gresource', themeResourceName: 'gnome-shell-theme.gresource',
hasOverview: false, hasOverview: false,
showCalendarEvents: false, showCalendarEvents: false,
showWelcomeDialog: false,
allowSettings: false, allowSettings: false,
allowExtensions: false, allowExtensions: false,
allowScreencast: false, allowScreencast: false,
@ -70,6 +71,7 @@ const _modes = {
'user': { 'user': {
hasOverview: true, hasOverview: true,
showCalendarEvents: true, showCalendarEvents: true,
showWelcomeDialog: true,
allowSettings: true, allowSettings: true,
allowExtensions: true, allowExtensions: true,
allowScreencast: true, allowScreencast: true,