gnome-control-center/panels
Andrea Azzarone b614a6c023 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:36:37 +12:00
..
applications shell: Add position to cc_shell_embed_widget_in_header() 2019-05-21 12:59:36 -03:00
background background: clarify remove background button 2019-07-22 21:25:29 +00:00
bluetooth shell: Add position to cc_shell_embed_widget_in_header() 2019-05-21 12:59:36 -03:00
color color: Fix compile warning on g_clear_pointer 2019-02-07 11:22:11 +13:00
common common: Update to gdk/x11 API 2019-08-08 15:18:07 +00:00
datetime build: Include generated sources in declared dependencies 2019-08-25 09:42:22 +00:00
display display: Consider monitors in landscape mode for minimum size 2019-08-27 13:43:29 +00:00
info info: Only connect web related mime types when setting default browser 2019-08-27 13:33:45 +00:00
keyboard keyboard: Add microphone mute key 2019-05-27 20:48:35 +00:00
mouse shell: Add position to cc_shell_embed_widget_in_header() 2019-05-21 12:59:36 -03:00
network network: Don’t add proxy device if NM isn’t running 2019-08-08 22:53:47 +00:00
notifications notifications-dialog: Make dialog adaptive 2019-07-26 01:13:20 +00:00
online-accounts online-accounts: Don't segfault if get_all_providers_cb is called during init 2019-09-10 10:36:37 +12:00
power power: Tweak margins and spacing 2019-06-16 01:01:36 +00:00
printers printers: Revert previous 2 commits 2019-05-24 19:12:00 +02:00
privacy privacy: Rename "Show Notifications" label 2019-03-29 17:12:20 +00:00
region region-panel: Reduce the width of popover 2019-07-26 01:32:10 +00:00
search search: Remove global variable that could get leaked 2019-08-26 11:57:53 +00:00
sharing sharing: Allow dialogs to have smaller width 2019-07-23 06:54:50 +05:30
sound sound: Pass a GvcMixerControl to the stream volume sliders 2019-09-09 15:23:32 +00:00
thunderbolt shell: Add position to cc_shell_embed_widget_in_header() 2019-05-21 12:59:36 -03:00
universal-access universal-access: Fix compile warning 2019-08-13 10:40:59 +12:00
user-accounts user-accounts: Check username validity over usermod 2019-08-26 16:26:45 +03:00
wacom shell: Add position to cc_shell_embed_widget_in_header() 2019-05-21 12:59:36 -03:00
meson.build sound: Rename new sound panel to replace old one 2019-02-07 09:31:18 +13:00