elementary/calendar

Support glib 2.73.1+: Avoid property notification during object construction

Closed this issue · 2 comments

What Happened?

In #756 (comment), we noticed that the calendar app does not show any date numbers, after making a minimal reproducer in https://github.com/bobby285271/e-calendar-issue and bisecting glib commits (thanks @jtojnar!), we noticed that this glib commit intentionally changes the behavior, which is part of glib 2.73.1+. It will be nice to adjust the code here so the app can still work nicely with glib 2.73.1+.

The affected code is at

this.notify["date"].connect (() => {
label.label = date.get_day_of_month ().to_string ();
});
}

The workaround is at #756 (comment).

Steps to Reproduce

  1. Build with glib 2.73.1+
  2. Launch the app
  3. Notice the app does not show any date numbers

I actually don't know how bad the effect will be for other Pantheon apps, for example in NixOS/nixpkgs#192686 (comment) we also noticed that iconbrowser is affected.

This handler might be suffering from the same issue. Although compute_ranges() is already called in the constructor, the other two methods are not. But I have not checked if they are necessary and am not sure how to test the EventStore.