Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.1:Staging:A
gnome-shell
gnome-shell-fate324570-Make-GDM-background-imag...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-shell-fate324570-Make-GDM-background-image-configurable.patch of Package gnome-shell
From 5039e3ba630ecfcd1b7db70696d4251f53e65cd5 Mon Sep 17 00:00:00 2001 From: Chingkai <qkzhu@suse.com> Date: Thu, 15 Nov 2018 13:14:08 +0800 Subject: [PATCH] screenShield: Make login and lock screen background configurable Add a background for lockDialogGroup to make login/lock background configurable. The default behavior will be retained to what it is currently, you can change the wallpaper via schema keys. https://gitlab.gnome.org/GNOME/gnome-shell/issues/680 --- js/ui/screenShield.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 9f3ff84..d5642ab 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -37,6 +37,9 @@ const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown'; const DISABLE_LOCK_KEY = 'disable-lock-screen'; const LOCKED_STATE_STR = 'screenShield.locked'; + +const LOCKDIALOG_BACKGROUND_SCHEMA = 'org.gnome.desktop.background.lockdialog'; + // fraction of screen height the arrow must reach before completing // the slide up automatically var ARROW_DRAG_THRESHOLD = 0.1; @@ -511,6 +514,16 @@ var ScreenShield = new Lang.Class({ this._onStatusChanged(status); })); + // Add background for this._lockDialogGroup + this._bgLockDialogGroup = new Clutter.Actor(); + + this._lockDialogGroup.add_actor(this._bgLockDialogGroup); + this._bgLockDialogGroup.lower_bottom(); + this._bgManagersLockDialogGroup = []; + + this._updateBgLockDialogGroup(); + Main.layoutManager.connect('monitors-changed', this._updateBgLockDialogGroup.bind(this)); + this._screenSaverDBus = new ShellDBus.ScreenSaverDBus(this); this._smartcardManager = SmartcardManager.getSmartcardManager(); @@ -588,6 +601,35 @@ var ScreenShield = new Lang.Class({ this._syncInhibitor(); }, + _createBgLockDialogGroup(monitorIndex) { + let monitor = Main.layoutManager.monitors[monitorIndex]; + let widget = new St.Widget({ style_class: 'screen-shield-background', + x: monitor.x, + y: monitor.y, + width: monitor.width, + height: monitor.height }); + + let bgManager = new Background.BackgroundManager({ container: widget, + monitorIndex: monitorIndex, + controlPosition: false, + settingsSchema: LOCKDIALOG_BACKGROUND_SCHEMA }); + + this._bgManagersLockDialogGroup.push(bgManager); + + this._bgLockDialogGroup.add_child(widget); + }, + + _updateBgLockDialogGroup() { + for (let i = 0; i < this._bgManagersLockDialogGroup.length; i++) + this._bgManagersLockDialogGroup[i].destroy(); + + this._bgManagersLockDialogGroup = []; + this._bgLockDialogGroup.destroy_all_children(); + + for (let i = 0; i < Main.layoutManager.monitors.length; i++) + this._createBgLockDialogGroup(i); + }, + _createBackground: function(monitorIndex) { let monitor = Main.layoutManager.monitors[monitorIndex]; let widget = new St.Widget({ style_class: 'screen-shield-background', -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor