gnome-shell r98 - trunk/js/ui



Author: otaylor
Date: Mon Dec  1 19:59:59 2008
New Revision: 98
URL: http://svn.gnome.org/viewvc/gnome-shell?rev=98&view=rev

Log:
Bug 562771 â The clock is inaccurate

Fix the clock to update exactly on the minute, rather than at a random
time within the minute.

Patch from RainCT (Siegfried Gevatter)

Modified:
   trunk/js/ui/panel.js

Modified: trunk/js/ui/panel.js
==============================================================================
--- trunk/js/ui/panel.js	(original)
+++ trunk/js/ui/panel.js	Mon Dec  1 19:59:59 2008
@@ -94,8 +94,8 @@
 
         global.stage.add_actor(this._group);
 
+        // Start the clock
         this._updateClock();
-        this._startClock();
     },
 
     // Struts determine the area along each side of the screen that is reserved
@@ -122,19 +122,20 @@
         }
     },
 
-    _startClock: function() {
-        let me = this;
-        // TODO: this makes the clock updated every 60 seconds, but not necessarily on the minute, so it is inaccurate
-        Mainloop.timeout_add_seconds(60,
-            function() {
-                me._updateClock();
-                return true;
-            });
-    },
-
     _updateClock: function() {
-        this._clock.set_text(new Date().toLocaleFormat("%H:%M"));
-        return true;
+        let me = this;
+        let display_date = new Date();
+        let msec_remaining = 60000 - (1000 * display_date.getSeconds() +
+                                      display_date.getMilliseconds());
+        if (msec_remaining < 500) {
+            display_date.setMinutes(display_time.getMinutes() + 1);
+            msec_remaining += 60000;
+        }
+        this._clock.set_text(display_date.toLocaleFormat("%H:%M"));
+        Mainloop.timeout_add(msec_remaining, function() {
+            me._updateClock();
+            return false;
+        });
     },
 
     overlayHidden: function() {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]