Blob Blame History Raw
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