From 56d76791f1570054fa5125d6b0b28c398d2521d2 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Thu, 17 Jan 2013 22:11:01 +0100 Subject: [PATCH] PointerWatcher: keep a reference to the idle monitor If nothing references the idle monitor, it can be finalized at GC, causing it to have no effect. Worse, if the finalization happens at wrong time, the pointer watcher can be permanently off, disabling the message tray. https://bugzilla.gnome.org/show_bug.cgi?id=691976 --- js/ui/pointerWatcher.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/ui/pointerWatcher.js b/js/ui/pointerWatcher.js index 9f7f2909c..dc31a1dd8 100644 --- a/js/ui/pointerWatcher.js +++ b/js/ui/pointerWatcher.js @@ -41,10 +41,10 @@ const PointerWatcher = new Lang.Class({ Name: 'PointerWatcher', _init: function() { - let idleMonitor = new GnomeDesktop.IdleMonitor(); - idleMonitor.connect('became-active', Lang.bind(this, this._onIdleMonitorBecameActive)); - idleMonitor.add_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle)); - this._idle = idleMonitor.get_idletime() > IDLE_TIME; + this._idleMonitor = new GnomeDesktop.IdleMonitor(); + this._idleMonitor.connect('became-active', Lang.bind(this, this._onIdleMonitorBecameActive)); + this._idleMonitor.add_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle)); + this._idle = this._idleMonitor.get_idletime() > IDLE_TIME; this._watches = []; this.pointerX = null; this.pointerY = null;