userMenu: Make the user menu insensitive in the lock screen
And show a lock icon as well. https://bugzilla.gnome.org/show_bug.cgi?id=683156
This commit is contained in:
parent
2a800e4ce0
commit
ec01f5d5ee
@ -115,6 +115,12 @@ const Button = new Lang.Class({
|
|||||||
this.setName(nameText);
|
this.setName(nameText);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setSensitive: function(sensitive) {
|
||||||
|
this.actor.reactive = sensitive;
|
||||||
|
this.actor.can_focus = sensitive;
|
||||||
|
this.actor.track_hover = sensitive;
|
||||||
|
},
|
||||||
|
|
||||||
setName: function(text) {
|
setName: function(text) {
|
||||||
if (text != null) {
|
if (text != null) {
|
||||||
// This is the easiest way to provide a accessible name to
|
// This is the easiest way to provide a accessible name to
|
||||||
|
@ -36,6 +36,7 @@ const _modes = {
|
|||||||
hasRunDialog: false,
|
hasRunDialog: false,
|
||||||
hasWorkspaces: false,
|
hasWorkspaces: false,
|
||||||
hasWindows: false,
|
hasWindows: false,
|
||||||
|
isLocked: true,
|
||||||
components: ['networkAgent', 'polkitAgent', 'telepathyClient'],
|
components: ['networkAgent', 'polkitAgent', 'telepathyClient'],
|
||||||
panel: {
|
panel: {
|
||||||
left: ['userMenu'],
|
left: ['userMenu'],
|
||||||
@ -68,6 +69,7 @@ const _modes = {
|
|||||||
hasWorkspaces: true,
|
hasWorkspaces: true,
|
||||||
hasWindows: true,
|
hasWindows: true,
|
||||||
createUnlockDialog: Main.createSessionUnlockDialog,
|
createUnlockDialog: Main.createSessionUnlockDialog,
|
||||||
|
isLocked: false,
|
||||||
components: ['networkAgent', 'polkitAgent', 'telepathyClient',
|
components: ['networkAgent', 'polkitAgent', 'telepathyClient',
|
||||||
'keyring', 'recorder', 'autorunManager', 'automountManager'],
|
'keyring', 'recorder', 'autorunManager', 'automountManager'],
|
||||||
panel: {
|
panel: {
|
||||||
|
@ -505,6 +505,8 @@ const UserMenuButton = new Lang.Class({
|
|||||||
style_class: 'popup-menu-icon' });
|
style_class: 'popup-menu-icon' });
|
||||||
this._pendingIcon = new St.Icon({ icon_name: 'user-status-pending-symbolic',
|
this._pendingIcon = new St.Icon({ icon_name: 'user-status-pending-symbolic',
|
||||||
style_class: 'popup-menu-icon' });
|
style_class: 'popup-menu-icon' });
|
||||||
|
this._lockedIcon = new St.Icon({ icon_name: 'changes-prevent-symbolic',
|
||||||
|
style_class: 'popup-menu-icon' });
|
||||||
|
|
||||||
this._accountMgr.connect('most-available-presence-changed',
|
this._accountMgr.connect('most-available-presence-changed',
|
||||||
Lang.bind(this, this._updatePresenceIcon));
|
Lang.bind(this, this._updatePresenceIcon));
|
||||||
@ -578,6 +580,9 @@ const UserMenuButton = new Lang.Class({
|
|||||||
let allowSettings = Main.sessionMode.allowSettings;
|
let allowSettings = Main.sessionMode.allowSettings;
|
||||||
this._statusChooser.setSensitive(allowSettings);
|
this._statusChooser.setSensitive(allowSettings);
|
||||||
this._systemSettings.visible = allowSettings;
|
this._systemSettings.visible = allowSettings;
|
||||||
|
|
||||||
|
this.setSensitive(!Main.sessionMode.isLocked);
|
||||||
|
this._updatePresenceIcon();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDestroy: function() {
|
_onDestroy: function() {
|
||||||
@ -661,7 +666,9 @@ const UserMenuButton = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updatePresenceIcon: function(accountMgr, presence, status, message) {
|
_updatePresenceIcon: function(accountMgr, presence, status, message) {
|
||||||
if (presence == Tp.ConnectionPresenceType.AVAILABLE)
|
if (Main.sessionMode.isLocked)
|
||||||
|
this._iconBox.child = this._lockedIcon;
|
||||||
|
else if (presence == Tp.ConnectionPresenceType.AVAILABLE)
|
||||||
this._iconBox.child = this._availableIcon;
|
this._iconBox.child = this._availableIcon;
|
||||||
else if (presence == Tp.ConnectionPresenceType.BUSY)
|
else if (presence == Tp.ConnectionPresenceType.BUSY)
|
||||||
this._iconBox.child = this._busyIcon;
|
this._iconBox.child = this._busyIcon;
|
||||||
|
Loading…
Reference in New Issue
Block a user