[gnome-shell] ScreenShield: implement o.g.ScreenSaver.GetActiveTime
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] ScreenShield: implement o.g.ScreenSaver.GetActiveTime
- Date: Thu, 18 Oct 2012 13:31:18 +0000 (UTC)
commit 2a8a8065a8ca01d6661222a081972384782c83f4
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Tue Oct 16 16:38:32 2012 +0200
ScreenShield: implement o.g.ScreenSaver.GetActiveTime
Part of the old gnome-screensaver interface, returns the number of seconds
that the screensaver has been active for.
https://bugzilla.gnome.org/show_bug.cgi?id=686064
js/ui/screenShield.js | 15 ++++++++++++++-
js/ui/shellDBus.js | 13 ++++++++++++-
2 files changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index d5ca644..07e450f 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -429,6 +429,7 @@ const ScreenShield = new Lang.Class({
this._isGreeter = false;
this._isActive = false;
this._inUnlockAnimation = false;
+ this._activationTime = 0;
this._lightbox = new Lightbox.Lightbox(Main.uiGroup,
{ inhibitEvents: true,
@@ -556,8 +557,12 @@ const ScreenShield = new Lang.Class({
this._isModal = true;
}
- if (!this._isActive)
+ if (!this._isActive) {
this._lightbox.show();
+
+ if (this._activationTime == 0)
+ this._activationTime = GLib.get_monotonic_time();
+ }
} else {
let lightboxWasShown = this._lightbox.shown;
this._lightbox.hide();
@@ -774,6 +779,10 @@ const ScreenShield = new Lang.Class({
return this._isActive;
},
+ get activationTime() {
+ return this._activationTime;
+ },
+
_tweenUnlocked: function() {
this._inUnlockAnimation = true;
this.unlock();
@@ -818,6 +827,7 @@ const ScreenShield = new Lang.Class({
if (Main.sessionMode.currentMode == 'unlock-dialog')
Main.sessionMode.popMode('unlock-dialog');
+ this._activationTime = 0;
this._isActive = false;
this.emit('lock-status-changed');
},
@@ -828,6 +838,9 @@ const ScreenShield = new Lang.Class({
this._isModal = true;
}
+ if (this._activationTime == 0)
+ this._activationTime = GLib.get_monotonic_time();
+
this.actor.show();
if (Main.sessionMode.currentMode != 'unlock-dialog' &&
diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js
index 65465ef..7a625af 100644
--- a/js/ui/shellDBus.js
+++ b/js/ui/shellDBus.js
@@ -59,6 +59,9 @@ const ScreenSaverIface = <interface name="org.gnome.ScreenSaver">
<method name="SetActive">
<arg name="value" direction="in" type="b" />
</method>
+<method name="GetActiveTime">
+ <arg name="value" direction="out" type="u" />
+</method>
<signal name="ActiveChanged">
<arg name="new_value" type="b" />
</signal>
@@ -373,5 +376,13 @@ const ScreenSaverDBus = new Lang.Class({
GetActive: function() {
return this._screenShield.locked;
- }
+ },
+
+ GetActiveTime: function() {
+ let started = this._screenShield.activationTime;
+ if (started > 0)
+ return Math.floor((GLib.get_monotonic_time() - started) / 1000000);
+ else
+ return 0;
+ },
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]