From 9c0338bf22b1267059b26b3ad17033a22139c462 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Fri, 3 Jun 2016 15:20:20 +0200
Subject: [PATCH 1/3] main: Reload theme on loss of graphics context
The theme machinery uses FBOs in some cases (mainly for shadows) which
need to be reloaded if we get a GL context lost error.
https://bugzilla.gnome.org/show_bug.cgi?id=739178
---
js/ui/main.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/js/ui/main.js b/js/ui/main.js
index ad95ce0..789dd69 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -191,6 +191,8 @@ function _initializeUI() {
return true;
});
+ global.display.connect('gl-video-memory-purged', loadTheme);
+
// Provide the bus object for gnome-session to
// initiate logouts.
EndSessionDialog.init();
--
2.7.4
From fea1b97af6db2e8a237b011aa720da4c4a8b4622 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Sun, 29 May 2016 19:42:25 +0200
Subject: [PATCH 2/3] screenShield: Stop using an offscreen buffer for the
arrow actor
This isn't a performance critical actor and the NVIDIA driver discards
offscreen buffers in some cases which would require us to go through
extra hoops to handle here which isn't worth it.
https://bugzilla.gnome.org/show_bug.cgi?id=739178
---
js/ui/screenShield.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index 18f5124..cbde55c 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -349,7 +349,6 @@ const Arrow = new Lang.Class({
_init: function(params) {
this.parent(params);
this.x_fill = this.y_fill = true;
- this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this._drawingArea = new St.DrawingArea();
this._drawingArea.connect('repaint', Lang.bind(this, this._drawArrow));
--
2.7.4
From d4350a7c16f61f7efac59f3b0501668b510c12bb Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Tue, 14 Jun 2016 17:55:35 +0200
Subject: [PATCH 3/3] screenShield: Chain up Arrow's style_changed vfunc
This makes style changes propagate to our child widget as they
should.
https://bugzilla.gnome.org/show_bug.cgi?id=739178
---
js/ui/screenShield.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index cbde55c..e4c3429 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -383,6 +383,8 @@ const Arrow = new Lang.Class({
this._shadowHelper = St.ShadowHelper.new(this._shadow);
else
this._shadowHelper = null;
+
+ this.parent();
},
vfunc_paint: function() {
--
2.7.4