diff options
author | Milan Crha <mcrha@redhat.com> | 2015-11-10 10:01:10 +0100 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2015-11-10 10:06:37 +0100 |
commit | 914dfe7e6673b736669e9e351d7a42b1a446cd8d (patch) | |
tree | 7bf9a6915925558eff797c8996e4aa86d3e3fa41 /e-util/e-calendar-item.c | |
parent | fe690cb472b358d7d1d45704575c4719c910587e (diff) | |
download | evolution-914dfe7e6673b736669e9e351d7a42b1a446cd8d.tar.gz |
Bug 692713 - Mini-calendar widget arrows in a wrong position
Diffstat (limited to 'e-util/e-calendar-item.c')
-rw-r--r-- | e-util/e-calendar-item.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/e-util/e-calendar-item.c b/e-util/e-calendar-item.c index 57a43dc183..fcd972640b 100644 --- a/e-util/e-calendar-item.c +++ b/e-util/e-calendar-item.c @@ -251,6 +251,7 @@ enum { DATE_RANGE_MOVED, SELECTION_CHANGED, SELECTION_PREVIEW_CHANGED, + MONTH_WIDTH_CHANGED, LAST_SIGNAL }; @@ -574,6 +575,15 @@ e_calendar_item_class_init (ECalendarItemClass *class) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + e_calendar_item_signals[MONTH_WIDTH_CHANGED] = g_signal_new ( + "month-width-changed", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0 /* G_STRUCT_OFFSET (ECalendarItemClass, month_width_changed) */, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + e_calendar_item_a11y_init (); } @@ -933,7 +943,7 @@ e_calendar_item_update (GnomeCanvasItem *item, GnomeCanvasItemClass *item_class; ECalendarItem *calitem; gint char_height, width, height, space, space_per_cal, space_per_cell; - gint rows, cols, xthickness, ythickness; + gint rows, cols, xthickness, ythickness, old_month_width; PangoContext *pango_context; PangoFontMetrics *font_metrics; GtkBorder padding; @@ -1004,6 +1014,7 @@ e_calendar_item_update (GnomeCanvasItem *item, PANGO_PIXELS (pango_font_metrics_get_ascent (font_metrics)) + PANGO_PIXELS (pango_font_metrics_get_descent (font_metrics)); + old_month_width = calitem->month_width; calitem->month_width = calitem->min_month_width; calitem->month_height = calitem->min_month_height; calitem->cell_width = MAX (calitem->max_day_width, (calitem->max_digit_width * 2)) @@ -1054,6 +1065,10 @@ e_calendar_item_update (GnomeCanvasItem *item, item->x2, item->y2); pango_font_metrics_unref (font_metrics); + + if (old_month_width != calitem->month_width) { + g_signal_emit (calitem, e_calendar_item_signals[MONTH_WIDTH_CHANGED], 0, NULL); + } } /* |