[gnome-shell/wip/rstrode/rhel-8.0.0: 50/50] background: refresh background on gl-video-memory-purged signal
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/rstrode/rhel-8.0.0: 50/50] background: refresh background on gl-video-memory-purged signal
- Date: Sun, 17 Feb 2019 17:33:03 +0000 (UTC)
commit 5f571b8531011b635034625d22d098fde688ff10
Author: Ray Strode <rstrode redhat com>
Date: Mon Jan 21 15:07:15 2019 -0500
background: refresh background on gl-video-memory-purged signal
Right now we refresh the background when resuming and when NVIDIA.
But mutter has a signal to tell us specifically when to refresh,
and the signal is only emitted for NVIDIA, so use that instead.
js/ui/background.js | 9 +++++++--
js/ui/layout.js | 12 ------------
src/shell-util.c | 9 ---------
3 files changed, 7 insertions(+), 23 deletions(-)
---
diff --git a/js/ui/background.js b/js/ui/background.js
index c61d946a4..ae7ef275e 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -539,10 +539,15 @@ var BackgroundSource = new Lang.Class({
this._backgrounds = [];
this._monitorsChangedId = global.screen.connect('monitors-changed',
- this._onMonitorsChanged.bind(this));
+ this._refresh.bind(this));
+
+ global.display.connect('gl-video-memory-purged', () => {
+ Meta.Background.refresh_all();
+ this._refresh();
+ });
},
- _onMonitorsChanged() {
+ _refresh() {
for (let monitorIndex in this._backgrounds) {
let background = this._backgrounds[monitorIndex];
diff --git a/js/ui/layout.js b/js/ui/layout.js
index 6f810395d..2cd1e5bd3 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -278,18 +278,6 @@ var LayoutManager = new Lang.Class({
global.screen.connect('in-fullscreen-changed',
this._updateFullscreen.bind(this));
this._monitorsChanged();
-
- // NVIDIA drivers don't preserve FBO contents across
- // suspend/resume, see
- // https://bugzilla.gnome.org/show_bug.cgi?id=739178
- if (Shell.util_need_background_refresh()) {
- LoginManager.getLoginManager().connect('prepare-for-sleep',
- (lm, suspending) => {
- if (suspending)
- return;
- Meta.Background.refresh_all();
- });
- }
},
// This is called by Main after everything else is constructed
diff --git a/src/shell-util.c b/src/shell-util.c
index c43bf4cc5..c63c6efb7 100644
--- a/src/shell-util.c
+++ b/src/shell-util.c
@@ -396,15 +396,6 @@ get_gl_vendor (void)
return vendor;
}
-gboolean
-shell_util_need_background_refresh (void)
-{
- if (g_strcmp0 (get_gl_vendor (), "NVIDIA Corporation") == 0)
- return TRUE;
-
- return FALSE;
-}
-
static gboolean
canvas_draw_cb (ClutterContent *content,
cairo_t *cr,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]