[gnome-shell/wip/hadess/welcome-tour] main: Show welcome tour dialogue on first start
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/hadess/welcome-tour] main: Show welcome tour dialogue on first start
- Date: Thu, 4 Feb 2021 11:43:14 +0000 (UTC)
commit a995806cfef1497237bc6c8cc0c42b320563d31e
Author: Bastien Nocera <hadess hadess net>
Date: Mon Feb 1 13:31:41 2021 +0100
main: Show welcome tour dialogue on first start
This hooks the recently added welcome tour dialogue to be shown the
first time a new session is started, and disabled after that.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632
data/org.gnome.shell.gschema.xml.in | 10 ++++++++++
js/ui/main.js | 14 ++++++++++++++
2 files changed, 24 insertions(+)
---
diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
index 0ae047e188..55817e8797 100644
--- a/data/org.gnome.shell.gschema.xml.in
+++ b/data/org.gnome.shell.gschema.xml.in
@@ -94,6 +94,16 @@
adapter is ever seen not to have devices associated to it.
</description>
</key>
+ <key name="welcome-dialog-last-shown-version" type="s">
+ <default>''</default>
+ <summary>The last version the “Welcome to GNOME” dialogue was shown for</summary>
+ <description>
+ This key determines when the “Welcome to GNOME” dialog was last shown for.
+ An empty string represents the oldest possible version, and huge number will
+ represents versions that do not exist yet, and should be used to disable the
+ dialogue should that be needed.
+ </description>
+ </key>
<key name="introspect" type="b">
<default>false</default>
<summary>Enable introspection API</summary>
diff --git a/js/ui/main.js b/js/ui/main.js
index f488279d07..544bb1d571 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -47,9 +47,12 @@ const KbdA11yDialog = imports.ui.kbdA11yDialog;
const LocatePointer = imports.ui.locatePointer;
const PointerA11yTimeout = imports.ui.pointerA11yTimeout;
const ParentalControlsManager = imports.misc.parentalControlsManager;
+const Config = imports.misc.config;
+const Util = imports.misc.util;
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
+const WELCOME_DIALOG_LAST_SHOWN_VERSION = 'welcome-dialog-last-shown-version';
const LOG_DOMAIN = 'GNOME Shell';
const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a';
@@ -297,6 +300,9 @@ function _initializeUI() {
if (credentials.get_unix_user() === 0) {
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.'));
+ } else if (sessionMode.currentMode !== 'gdm' &&
+ sessionMode.currentMode !== 'initial-setup') {
+ _handleShowWelcomeScreen();
}
if (sessionMode.currentMode !== 'gdm' &&
@@ -314,6 +320,14 @@ function _initializeUI() {
});
}
+function _handleShowWelcomeScreen() {
+ const lastShownVersion = global.settings.get_string(WELCOME_DIALOG_LAST_SHOWN_VERSION);
+ if (Util.GNOMEversionCompare (Config.PACKAGE_VERSION, lastShownVersion) > 0) {
+ openWelcomeDialog();
+ global.settings.set_string(WELCOME_DIALOG_LAST_SHOWN_VERSION, Config.PACKAGE_VERSION);
+ }
+}
+
async function _handleLockScreenWarning() {
const path = '%s/lock-warning-shown'.format(global.userdatadir);
const file = Gio.File.new_for_path(path);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]