GtkCalendar: deal better with a large allocation

When allocated more than the requested height, GtkCalendar
was 'falling apart'. Not only was the main part rendered
at the far end of the allocation, clicking on days was
broken in this scenario.

Fix this by always placing the main part directly under
the header and day names.

https://bugzilla.gnome.org/show_bug.cgi?id=737670
This commit is contained in:
Matthias Clasen 2014-10-01 20:09:10 -04:00
parent b46cef1809
commit 7b2e526c3a

View File

@ -1253,17 +1253,14 @@ static gint
calendar_top_y_for_row (GtkCalendar *calendar,
gint row)
{
GtkAllocation allocation;
gint inner_border = calendar_get_inner_border (calendar);
GtkCalendarPrivate *priv = calendar->priv;
GtkBorder padding;
gint inner_border = calendar_get_inner_border (calendar);
gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation);
get_component_paddings (calendar, &padding, NULL, NULL, NULL);
return allocation.height
- padding.top - inner_border
- (CALENDAR_MARGIN + (6 - row)
* calendar_row_height (calendar));
return priv->header_h + priv->day_name_h + padding.top + inner_border
+ row * calendar_row_height (calendar);
}
/* row_from_y: returns the row 0-5 that the