summaryrefslogtreecommitdiff
path: root/e-util/e-calendar-item.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2015-11-10 10:01:10 +0100
committerMilan Crha <mcrha@redhat.com>2015-11-10 10:06:37 +0100
commit914dfe7e6673b736669e9e351d7a42b1a446cd8d (patch)
tree7bf9a6915925558eff797c8996e4aa86d3e3fa41 /e-util/e-calendar-item.c
parentfe690cb472b358d7d1d45704575c4719c910587e (diff)
downloadevolution-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.c17
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);
+ }
}
/*