[Xfce4-commits] <xfce4-panel:master> Use g_timeout_add_seconds when available for the clock timeout.
Nick Schermer
noreply at xfce.org
Tue Oct 6 11:16:03 CEST 2009
Updating branch refs/heads/master
to d475996395d66d138359dfb45a51126448244c34 (commit)
from c00b5cc205352640eba0f7a39340cda3d9f7fdcb (commit)
commit d475996395d66d138359dfb45a51126448244c34
Author: Nick Schermer <nick at xfce.org>
Date: Tue Oct 6 11:12:52 2009 +0200
Use g_timeout_add_seconds when available for the clock timeout.
These functions tend to stay better in sync with the system clock
and thus resulting in less rescheduling.
plugins/clock/clock.c | 46 ++++++++++++++++++++++++++++++----------------
1 files changed, 30 insertions(+), 16 deletions(-)
diff --git a/plugins/clock/clock.c b/plugins/clock/clock.c
index b2a1988..f62c57f 100644
--- a/plugins/clock/clock.c
+++ b/plugins/clock/clock.c
@@ -35,6 +35,18 @@
#define USE_DEBUG_TIME (0)
+#if GLIB_CHECK_VERSION (2, 14, 0)
+#define clock_timeout_add_seconds(interval,function,data) \
+ g_timeout_add_seconds (interval,function,data)
+#define clock_timeout_add_seconds_full(priority,interval,function,data,notify) \
+ g_timeout_add_seconds_full (priority,interval,function,data,notify)
+#else
+#define clock_timeout_add_seconds(interval,function,data) \
+ g_timeout_add ((interval) * 1000,function,data)
+#define clock_timeout_add_seconds_full(priority,interval,function,data,notify) \
+ g_timeout_add_full (priority,(interval) * 1000,function,data,notify)
+#endif
+
/** prototypes **/
@@ -273,9 +285,10 @@ xfce_clock_tooltip_sync_timeout (gpointer user_data)
ClockPlugin *plugin = (ClockPlugin *) user_data;
/* start the tooltip update interval */
- plugin->tooltip_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, plugin->tooltip_interval * 1000,
- xfce_clock_tooltip_timeout, plugin,
- xfce_clock_tooltip_timeout_destroyed);
+ plugin->tooltip_timeout_id = clock_timeout_add_seconds_full (G_PRIORITY_DEFAULT_IDLE,
+ plugin->tooltip_interval,
+ xfce_clock_tooltip_timeout, plugin,
+ xfce_clock_tooltip_timeout_destroyed);
/* manual update for this timeout */
xfce_clock_tooltip_update (plugin);
@@ -307,14 +320,15 @@ xfce_clock_tooltip_sync (ClockPlugin *plugin)
if (interval > 0 && plugin->tooltip_interval != CLOCK_INTERVAL_SECOND)
{
/* start the sync timeout */
- plugin->tooltip_timeout_id = g_timeout_add (interval * 1000, xfce_clock_tooltip_sync_timeout, plugin);
+ plugin->tooltip_timeout_id = clock_timeout_add_seconds (interval, xfce_clock_tooltip_sync_timeout, plugin);
}
else
{
/* start the real timeout */
- plugin->tooltip_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, plugin->tooltip_interval * 1000,
- xfce_clock_tooltip_timeout, plugin,
- xfce_clock_tooltip_timeout_destroyed);
+ plugin->tooltip_timeout_id = clock_timeout_add_seconds_full (G_PRIORITY_DEFAULT_IDLE,
+ plugin->tooltip_interval,
+ xfce_clock_tooltip_timeout, plugin,
+ xfce_clock_tooltip_timeout_destroyed);
}
/* update the tooltip */
@@ -369,9 +383,10 @@ xfce_clock_widget_sync_timeout (gpointer user_data)
if (G_LIKELY (plugin->widget))
{
/* start the clock update timeout */
- plugin->clock_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, plugin->interval * 1000,
- xfce_clock_widget_timeout, plugin,
- xfce_clock_widget_timeout_destroyed);
+ plugin->clock_timeout_id = clock_timeout_add_seconds_full (G_PRIORITY_DEFAULT_IDLE,
+ plugin->interval,
+ xfce_clock_widget_timeout, plugin,
+ xfce_clock_widget_timeout_destroyed);
/* manual update for this interval */
(plugin->update) (plugin->widget);
@@ -408,17 +423,16 @@ xfce_clock_widget_sync (ClockPlugin *plugin)
if (interval > 0 && plugin->interval != CLOCK_INTERVAL_SECOND)
{
/* start the sync timeout */
- plugin->clock_timeout_id = g_timeout_add (interval * 1000, xfce_clock_widget_sync_timeout, plugin);
+ plugin->clock_timeout_id = clock_timeout_add_seconds (interval, xfce_clock_widget_sync_timeout, plugin);
}
else
{
/* start the real timeout */
- plugin->clock_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, plugin->interval * 1000,
- xfce_clock_widget_timeout, plugin,
- xfce_clock_widget_timeout_destroyed);
+ plugin->clock_timeout_id = clock_timeout_add_seconds_full (G_PRIORITY_DEFAULT_IDLE,
+ plugin->interval,
+ xfce_clock_widget_timeout, plugin,
+ xfce_clock_widget_timeout_destroyed);
}
-
-
}
}
More information about the Xfce4-commits
mailing list