[gnome-shell] loginDialog: (Optionally) show logo below user list
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] loginDialog: (Optionally) show logo below user list
- Date: Tue, 7 May 2013 18:53:25 +0000 (UTC)
commit cde695d903df9d6419cf64b52ae831df412feade
Author: Florian Müllner <fmuellner gnome org>
Date: Sat Mar 23 01:27:22 2013 +0100
loginDialog: (Optionally) show logo below user list
The optional logo on the login screen is currently shown in the
top bar, which is not only a rather unprominent position, it also
gives the wrong suggestion of a clickable element.
Newer designs call for the logo to be shown horizontally centered
at the bottom of the screen, so implement that instead.
https://bugzilla.gnome.org/show_bug.cgi?id=694912
data/theme/gnome-shell.css | 4 ++++
js/gdm/loginDialog.js | 31 ++++++++++++++++++++++++++++++-
2 files changed, 34 insertions(+), 1 deletions(-)
---
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index 7cd4c76..a46ac40 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -2393,6 +2393,10 @@ StScrollBar StButton#vhandle:active {
height: .75em;
}
+.login-dialog-logo-bin {
+ padding: 24px 0px;
+}
+
.login-dialog .modal-dialog-button-box {
spacing: 3px;
}
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index f9c5894..bba17ae 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -49,7 +49,7 @@ const UserWidget = imports.ui.userWidget;
const _FADE_ANIMATION_TIME = 0.25;
const _SCROLL_ANIMATION_TIME = 0.5;
const _TIMED_LOGIN_IDLE_THRESHOLD = 5.0;
-const _LOGO_ICON_HEIGHT = 16;
+const _LOGO_ICON_HEIGHT = 48;
const WORK_SPINNER_ICON_SIZE = 24;
const WORK_SPINNER_ANIMATION_DELAY = 1.0;
@@ -553,6 +553,12 @@ const LoginDialog = new Lang.Class({
Lang.bind(this, this._updateBanner));
this._settings.connect('changed::' + GdmUtil.DISABLE_USER_LIST_KEY,
Lang.bind(this, this._updateDisableUserList));
+ this._settings.connect('changed::' + GdmUtil.LOGO_KEY,
+ Lang.bind(this, this._updateLogo));
+
+ this._textureCache = St.TextureCache.get_default();
+ this._textureCache.connect('texture-file-changed',
+ Lang.bind(this, this._updateLogoTexture));
this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box',
vertical: true });
@@ -645,6 +651,11 @@ const LoginDialog = new Lang.Class({
x_align: St.Align.START,
x_fill: true });
+ this._logoBin = new St.Bin({ style_class: 'login-dialog-logo-bin' });
+ this._logoBin.set_y_align(Clutter.ActorAlign.END);
+ this.backgroundStack.add_actor(this._logoBin);
+ this._updateLogo();
+
if (!this._userManager.is_loaded)
this._userManagerLoadedId = this._userManager.connect('notify::is-loaded',
Lang.bind(this, function() {
@@ -691,6 +702,24 @@ const LoginDialog = new Lang.Class({
}
},
+ _updateLogoTexture: function(cache, uri) {
+ if (this._logoFileUri != uri)
+ return;
+
+ let icon = null;
+ if (this._logoFileUri)
+ icon = this._textureCache.load_uri_async(this._logoFileUri,
+ -1, _LOGO_ICON_HEIGHT);
+ this._logoBin.set_child(icon);
+ },
+
+ _updateLogo: function() {
+ let path = this._settings.get_string(GdmUtil.LOGO_KEY);
+
+ this._logoFileUri = path ? Gio.file_new_for_path(path).get_uri() : null;
+ this._updateLogoTexture(this._textureCache, this._logoFileUri);
+ },
+
_reset: function() {
this._userVerifier.clear();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]