diff --git a/src/functions.c b/src/functions.c index 37c286c..59ee0cd 100644 --- a/src/functions.c +++ b/src/functions.c @@ -583,6 +583,17 @@ char *orage_icaltime_to_i18_time(const char *icaltime) return(ct); } +char *orage_icaltime_to_i18_time_short(const char *icaltime) +{ + struct tm t; + static char i18_time[40]; + + t = orage_icaltime_to_tm_time(icaltime, TRUE); + if (strftime(i18_time, 40, "%R", &t) == 0) + g_error("Orage: orage_icaltime_to_i18_time_to_i18_time_short too long string in strftime"); + return(i18_time); +} + char *orage_i18_time_to_icaltime(const char *i18_time) { struct tm t; diff --git a/src/mainbox.c b/src/mainbox.c index eff306b..0bce8de 100644 --- a/src/mainbox.c +++ b/src/mainbox.c @@ -356,7 +356,7 @@ static void add_info_row(xfical_appt *appt, GtkBox *parentBox, gboolean todo) CalWin *cal = (CalWin *)g_par.xfcal; gchar *tip, *tmp, *tmp_title, *tmp_note; struct tm *t; - char *l_time, *s_time, *e_time, *c_time, *na; + char *l_time, *s_time, *s_timeonly, *e_time, *c_time, *na; gint len; #ifdef ORAGE_DEBUG @@ -365,7 +365,13 @@ static void add_info_row(xfical_appt *appt, GtkBox *parentBox, gboolean todo) /***** add data into the vbox *****/ ev = gtk_event_box_new(); tmp_title = orage_process_text_commands(appt->title); - tmp = g_strdup_printf(" %s", tmp_title); + if (appt->allDay) { + tmp = g_strdup_printf(" %s", appt->title); + } else { + s_timeonly = g_strdup(orage_icaltime_to_i18_time_short(appt->starttimecur)); + tmp = g_strdup_printf(" %s %s", s_timeonly, appt->title); + g_free(s_timeonly); + } label = gtk_label_new(tmp); g_free(tmp); gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END);