[gnome-clocks] Use tick_callback instead of plain timeout.
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-clocks] Use tick_callback instead of plain timeout.
- Date: Thu, 15 Aug 2013 09:32:31 +0000 (UTC)
commit 53b42f8ab4596180a7b26bfffc7f6dd69a94d191
Author: Paolo Borelli <pborelli gnome org>
Date: Thu Aug 15 11:06:25 2013 +0200
Use tick_callback instead of plain timeout.
Use gtk smart paint clock to reduce the times we redraw
src/stopwatch.vala | 30 ++++++++++++++++--------------
src/timer.vala | 32 +++++++++++++++++---------------
2 files changed, 33 insertions(+), 29 deletions(-)
---
diff --git a/src/stopwatch.vala b/src/stopwatch.vala
index 0bb6dc8..417383a 100644
--- a/src/stopwatch.vala
+++ b/src/stopwatch.vala
@@ -38,7 +38,7 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
private State state;
private GLib.Timer timer;
- private uint timeout_id;
+ private uint tick_id;
private int current_lap;
private double last_lap_time;
private Gtk.Label time_label;
@@ -51,7 +51,7 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
Object (label: _("Stopwatch"), header_bar: header_bar, panel_id: PanelId.STOPWATCH);
timer = new GLib.Timer ();
- timeout_id = 0;
+ tick_id = 0;
var builder = Utils.load_ui ("stopwatch.ui");
@@ -68,13 +68,13 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
map.connect ((w) => {
if (state == State.RUNNING) {
update_time_label ();
- add_timeout ();
+ add_tick ();
}
});
unmap.connect ((w) => {
if (state == State.RUNNING) {
- remove_timeout ();
+ remove_tick ();
}
});
@@ -118,7 +118,7 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
timer.continue ();
}
state = State.RUNNING;
- add_timeout ();
+ add_tick ();
left_button.set_label (_("Stop"));
left_button.get_style_context ().add_class ("clocks-stop");
right_button.set_sensitive (true);
@@ -128,7 +128,7 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
private void stop () {
timer.stop ();
state = State.STOPPED;
- remove_timeout ();
+ remove_tick ();
left_button.set_label (_("Continue"));
left_button.get_style_context ().remove_class ("clocks-stop");
left_button.get_style_context ().add_class ("clocks-go");
@@ -139,7 +139,7 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
private void reset () {
timer.reset ();
state = State.RESET;
- remove_timeout ();
+ remove_tick ();
update_time_label ();
left_button.set_label (_("Start"));
left_button.get_style_context ().add_class ("clocks-go");
@@ -197,16 +197,18 @@ public class MainPanel : Gtk.Box, Clocks.Clock {
laps_view.scroll_to_cell (p, null, false, 0, 0);
}
- private void add_timeout () {
- if (timeout_id == 0) {
- timeout_id = Timeout.add (100, update_time_label);
+ private void add_tick () {
+ if (tick_id == 0) {
+ tick_id = add_tick_callback ((c) => {
+ return update_time_label ();
+ });
}
}
- private void remove_timeout () {
- if (timeout_id != 0) {
- Source.remove (timeout_id);
- timeout_id = 0;
+ private void remove_tick () {
+ if (tick_id != 0) {
+ remove_tick_callback (tick_id);
+ tick_id = 0;
}
}
diff --git a/src/timer.vala b/src/timer.vala
index 2a85082..4a3b9ed 100644
--- a/src/timer.vala
+++ b/src/timer.vala
@@ -32,7 +32,7 @@ public class MainPanel : Gtk.Stack, Clocks.Clock {
private State state;
private GLib.Settings settings;
- private uint timeout_id;
+ private uint tick_id;
private Utils.Bell bell;
private Gtk.Widget setup_panel;
private Gtk.Grid grid_spinbuttons;
@@ -54,7 +54,7 @@ public class MainPanel : Gtk.Stack, Clocks.Clock {
bell = new Utils.Bell ("complete", _("Time is up!"), _("Timer countdown finished"));
- timeout_id = 0;
+ tick_id = 0;
span = 0;
timer = new GLib.Timer ();
@@ -144,7 +144,7 @@ public class MainPanel : Gtk.Stack, Clocks.Clock {
private void reset () {
state = State.STOPPED;
timer.reset ();
- remove_timeout ();
+ remove_tick ();
span = settings.get_uint ("timer");
h_spinbutton.value = (int) span / 3600;
m_spinbutton.value = (int) span / 60;
@@ -154,7 +154,7 @@ public class MainPanel : Gtk.Stack, Clocks.Clock {
}
private void start () {
- if (state == State.STOPPED && timeout_id == 0) {
+ if (state == State.STOPPED && tick_id == 0) {
var h = h_spinbutton.get_value_as_int ();
var m = m_spinbutton.get_value_as_int ();
var s = s_spinbutton.get_value_as_int ();
@@ -168,33 +168,35 @@ public class MainPanel : Gtk.Stack, Clocks.Clock {
visible_child = countdown_panel;
update_countdown_label (h, m, s);
- add_timeout ();
+ add_tick ();
}
}
private void restart () {
state = State.RUNNING;
timer.start ();
- add_timeout ();
+ add_tick ();
}
private void pause () {
state = State.PAUSED;
timer.stop ();
span -= timer.elapsed ();
- remove_timeout ();
+ remove_tick ();
}
- private void add_timeout () {
- if (timeout_id == 0) {
- timeout_id = Timeout.add (100, count);
+ private void add_tick () {
+ if (tick_id == 0) {
+ tick_id = add_tick_callback ((c) => {
+ return count ();
+ });
}
}
- private void remove_timeout () {
- if (timeout_id != 0) {
- Source.remove (timeout_id);
- timeout_id = 0;
+ private void remove_tick () {
+ if (tick_id != 0) {
+ remove_tick_callback (tick_id);
+ tick_id = 0;
}
}
@@ -203,7 +205,7 @@ public class MainPanel : Gtk.Stack, Clocks.Clock {
if (e >= span) {
ring ();
state = State.STOPPED;
- remove_timeout ();
+ remove_tick ();
update_countdown_label (0, 0, 0);
visible_child = setup_panel;
return false;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]