aboutsummaryrefslogtreecommitdiff
path: root/src/indicator-datetime.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-09-29 15:38:31 -0500
committerTed Gould <ted@gould.cx>2011-09-29 15:38:31 -0500
commit521526d79aa03ceee72ae15f4d29c2173a95aa83 (patch)
tree551312e2628d0b5da063602c3e58d867a9f180bb /src/indicator-datetime.c
parentd6dcd6734c7316d8ff59e3f8f8f6037466fce354 (diff)
parent4e2dc05c209906b1a0d01b1c9f12c26a8ce2cd6d (diff)
downloadayatana-indicator-datetime-521526d79aa03ceee72ae15f4d29c2173a95aa83.tar.gz
ayatana-indicator-datetime-521526d79aa03ceee72ae15f4d29c2173a95aa83.tar.bz2
ayatana-indicator-datetime-521526d79aa03ceee72ae15f4d29c2173a95aa83.zip
* New upstream release.
* Fix corrupt environment when LANGUAGE not set (LP: #861123) * Measure string size with GLib (LP: #730476) * Free ECals when they have errors (LP: #774071) * Fix untranslated string (LP: #853130)
Diffstat (limited to 'src/indicator-datetime.c')
-rw-r--r--src/indicator-datetime.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c
index 339ea2f..8e5f421 100644
--- a/src/indicator-datetime.c
+++ b/src/indicator-datetime.c
@@ -1092,12 +1092,14 @@ guess_label_size (IndicatorDatetime * self)
g_debug("Checking against %d possible times", timevals->len);
gint check_time;
for (check_time = 0; check_time < timevals->len; check_time++) {
- gchar longstr[256];
- strftime(longstr, 256, self->priv->time_string, &(g_array_index(timevals, struct tm, check_time)));
+ struct tm * timeval = &g_array_index(timevals, struct tm, check_time);
+ GDateTime * dt = g_date_time_new_local(timeval->tm_year, timeval->tm_mon, timeval->tm_mday, timeval->tm_hour, timeval->tm_min, timeval->tm_sec);
+ gchar * timestr = g_date_time_format(dt, self->priv->time_string);
- gchar * utf8 = g_locale_to_utf8(longstr, -1, NULL, NULL, NULL);
- gint length = measure_string(style, context, utf8);
- g_free(utf8);
+ gint length = measure_string(style, context, timestr);
+
+ g_free(timestr);
+ g_date_time_unref(dt);
if (length > *max_width) {
*max_width = length;