gnome-control-center/panels
Andrea Azzarone c6776a7be6 online-accounts: Don't segfault if get_all_providers_cb is called during init
Due to an API bug in GNOME Online Accounts, the asynchronous
goa_provider_get_all method doesn't accept a GCancellable argument. This makes
it difficult to cancel an ongoing call when the CcGoaPanel gets destroyed.

This was hacked around by taking a reference on the panel for the duration of
the call. Instead of cancelling a pending call on destruction, it would keep the
panel alive until the call was over.

The hack does not consider the case get_all_providers_cb is called while the
panel is still being initialized. E.g. this happen when create the panel passing
the paramenters "add <provider>" because the constuct properties are set just
after cc_goa_panel_init returns and because goa_provider_add_account will result
in a call to g_main_context_iterate (caused by gtk_dialog_run).

In order to work around this we can call goa_provider_get_all in _constructed()
after all construct properties have been set.

https://gitlab.gnome.org/GNOME/gnome-control-center/issues/401
2019-09-10 10:29:43 +12:00
..
applications Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
background Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
bluetooth bluetooth: Move all UI into the GtkTemplate 2019-09-09 22:03:36 +00:00
color color: Make .ui filename match the .c filename 2019-09-09 21:58:00 +00:00
common language-chooser: Port to HdyDialog 2019-09-09 22:14:18 +00:00
datetime Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
default-apps info: Split default-apps into its own panel 2019-09-09 21:52:07 +00:00
display Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
info-overview info: Rename info panel to info-overview for consistency 2019-09-09 21:52:08 +00:00
keyboard keyboard: Make .ui filename match the .c filename 2019-09-09 21:58:01 +00:00
mouse Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
network network: Make the rows adaptive 2019-09-09 22:25:23 +00:00
notifications Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
online-accounts online-accounts: Don't segfault if get_all_providers_cb is called during init 2019-09-10 10:29:43 +12:00
power Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
printers Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
privacy Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
region region-panel: Reduce the width of popover 2019-07-26 01:32:10 +00:00
removable-media info: Split removable-media into its own panel 2019-09-09 21:52:07 +00:00
search search: Make .ui filename match the .c filename 2019-09-09 21:58:00 +00:00
sharing sharing: Make .ui filename match the .c filename 2019-09-09 21:58:00 +00:00
sound sound: Pass a GvcMixerControl to the stream volume sliders 2019-09-09 15:23:32 +00:00
thunderbolt Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
universal-access Remove unused GNOMELOCALEDIR defines 2019-09-09 21:45:53 +00:00
user-accounts user-accounts: Check username validity over usermod 2019-08-26 16:26:45 +03:00
wacom wacom: Use g_auto for variables 2019-09-09 22:08:26 +00:00
meson.build info: Rename info panel to info-overview for consistency 2019-09-09 21:52:08 +00:00