From 9c0338bf22b1267059b26b3ad17033a22139c462 Mon Sep 17 00:00:00 2001 From: Rui Matos 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 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 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