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 2ce384cc5a
commit 84f5091459

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