diff --git a/ChangeLog b/ChangeLog index 6891de90a..bb57307fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-07-20 Mike Kestner + + * gtk/Calendar.custom : workaround invalid states in widget when + raising month_changed signals. [Fixes #78524] + 2007-07-20 Mike Kestner * gtk/gtk-api-2.10.raw : refresh. diff --git a/gtk/Calendar.custom b/gtk/Calendar.custom index c20ae6ec9..a4ca0ab4a 100644 --- a/gtk/Calendar.custom +++ b/gtk/Calendar.custom @@ -26,7 +26,15 @@ public DateTime GetDate () { uint year, month, day; GetDate (out year, out month, out day); - return new DateTime ((int) year, (int) month + 1, (int) day); + DateTime result; + try { + result = new DateTime ((int) year, (int) month + 1, (int) day); + } catch (ArgumentOutOfRangeException) { + // Kluge to workaround GtkCalendar being in an invalid state + // when raising month_changed signals, like in bug #78524. + result = new DateTime ((int) year, (int) month + 1, DateTime.DaysInMonth ((int) year, (int) month + 1)); + } + return result; }