event-widget: show start time when event is timed
We differentiate all day events from timed events by their ordering, but we don't give any visual clues of this differentiation. Fix that by adding the start time of the event when it's a timed event. https://bugzilla.gnome.org/show_bug.cgi?id=753131
This commit is contained in:
+24
-1
@@ -423,6 +423,7 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
|
||||
PangoLayout *layout;
|
||||
PangoFontDescription *font_desc;
|
||||
gchar *display_text;
|
||||
|
||||
self = GCAL_EVENT_WIDGET (widget);
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
@@ -436,9 +437,30 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
gtk_render_background (context, cr, 0, 0, width, height);
|
||||
gtk_render_frame (context, cr, 0, 0, width, height);
|
||||
|
||||
/*
|
||||
* The text displayed in the widget includes the time when the event
|
||||
* is timed, or not if the event is all day.
|
||||
*/
|
||||
if (gcal_event_get_all_day (self->event))
|
||||
{
|
||||
display_text = g_strdup (gcal_event_get_summary (self->event));
|
||||
}
|
||||
else
|
||||
{
|
||||
GDateTime *local_start_time;
|
||||
gchar *start_time;
|
||||
|
||||
local_start_time = g_date_time_to_local (gcal_event_get_date_start (self->event));
|
||||
start_time = g_date_time_format (local_start_time, "%R%p");
|
||||
display_text = g_strdup_printf ("(%s) %s", start_time, gcal_event_get_summary (self->event));
|
||||
|
||||
g_clear_pointer (&local_start_time, g_date_time_unref);
|
||||
g_clear_pointer (&start_time, g_free);
|
||||
}
|
||||
|
||||
/* FIXME for RTL alignment and icons positions */
|
||||
gtk_style_context_get (context, state, "font", &font_desc, NULL);
|
||||
layout = gtk_widget_create_pango_layout (widget, gcal_event_get_summary (self->event));
|
||||
layout = gtk_widget_create_pango_layout (widget, display_text);
|
||||
pango_layout_set_font_description (layout, font_desc);
|
||||
pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
|
||||
pango_layout_set_width (layout, (width - (padding.left + padding.right) ) * PANGO_SCALE);
|
||||
@@ -512,6 +534,7 @@ gcal_event_widget_draw (GtkWidget *widget,
|
||||
|
||||
pango_font_description_free (font_desc);
|
||||
g_object_unref (layout);
|
||||
g_free (display_text);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user