Skip to content

Commit d75d528

Browse files
committed
screensaver: Limit access to the screenShieldGroup.
It shouldn't be accessible outside of screensaver code.
1 parent 40b756c commit d75d528

3 files changed

Lines changed: 20 additions & 21 deletions

File tree

js/ui/layout.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -304,20 +304,6 @@ var LayoutManager = GObject.registerClass({
304304
this._chrome.init();
305305

306306
this.hotCornerManager = new HotCorner.HotCornerManager();
307-
308-
// Create container for screen shield (above all other UI)
309-
this.screenShieldGroup = new St.Widget({
310-
name: 'screenShieldGroup',
311-
visible: false,
312-
clip_to_allocation: true,
313-
layout_manager: new Clutter.BinLayout()
314-
});
315-
this.screenShieldGroup.add_constraint(new Clutter.BindConstraint({
316-
source: global.stage,
317-
coordinate: Clutter.BindCoordinate.ALL
318-
}));
319-
global.stage.add_actor(this.screenShieldGroup);
320-
this.screenShieldGroup.raise_top();
321307
}
322308

323309
_toggleExpo() {

js/ui/main.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,19 @@ function start() {
552552
// The internal screensaver is the only option for wayland sessions. X11 sessions can use either
553553
// the internal one or cinnamon-screensaver (>= 6.7).
554554
if (Meta.is_wayland_compositor() || global.settings.get_boolean('internal-screensaver-enabled')) {
555-
_screenShield = new ScreenShield.ScreenShield();
555+
let screenShieldGroup = new St.Widget({
556+
name: 'screenShieldGroup',
557+
visible: false,
558+
clip_to_allocation: true,
559+
layout_manager: new Clutter.BinLayout()
560+
});
561+
screenShieldGroup.add_constraint(new Clutter.BindConstraint({
562+
source: global.stage,
563+
coordinate: Clutter.BindCoordinate.ALL
564+
}));
565+
global.stage.add_actor(screenShieldGroup);
566+
567+
_screenShield = new ScreenShield.ScreenShield(screenShieldGroup);
556568
new ScreenSaver.ScreenSaverService(_screenShield);
557569
}
558570

js/ui/screensaver/screenShield.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ var ScreenShield = GObject.registerClass({
9292
'unlocked': {}
9393
}
9494
}, class ScreenShield extends St.Widget {
95-
_init() {
95+
_init(screenShieldGroup) {
9696
super._init({
9797
name: 'screenShield',
9898
style_class: 'screen-shield',
@@ -143,7 +143,8 @@ var ScreenShield = GObject.registerClass({
143143
});
144144
this.add_constraint(constraint);
145145

146-
Main.layoutManager.screenShieldGroup.add_actor(this);
146+
this._screenShieldGroup = screenShieldGroup;
147+
this._screenShieldGroup.add_actor(this);
147148

148149
this._backgroundLayer = new St.Widget({
149150
name: 'screenShieldBackground',
@@ -457,8 +458,8 @@ var ScreenShield = GObject.registerClass({
457458
if (Main.deskletContainer)
458459
Main.deskletContainer.actor.hide();
459460

460-
global.stage.set_child_above_sibling(Main.layoutManager.screenShieldGroup, null);
461-
Main.layoutManager.screenShieldGroup.show();
461+
global.stage.set_child_above_sibling(this._screenShieldGroup, null);
462+
this._screenShieldGroup.show();
462463
this.show();
463464

464465
if (immediate) {
@@ -494,7 +495,7 @@ var ScreenShield = GObject.registerClass({
494495
if (Main.deskletContainer)
495496
Main.deskletContainer.actor.show();
496497

497-
Main.layoutManager.screenShieldGroup.hide();
498+
this._screenShieldGroup.hide();
498499
this.hide();
499500
this._destroyBackgrounds();
500501

@@ -578,7 +579,7 @@ var ScreenShield = GObject.registerClass({
578579
onComplete: () => {
579580
Main.popModal(this);
580581
this.hide();
581-
Main.layoutManager.screenShieldGroup.hide();
582+
this._screenShieldGroup.hide();
582583
this._destroyAllWidgets();
583584
global.stage.show_cursor();
584585

0 commit comments

Comments
 (0)