The set_background() function changes settings, and even though the
underlying GSettings are set to `delay-apply`, every change still fires
a "changed" callback. This results in many intermediate and
unnecessary calls to on_settings_changed().
Fix this by blocking that callback during the set_background() calls,
and manually doing a single on_settings_changed().
The checkmark indicating the active background based on GtkFlowBox
selection does not work when changing the selection with the arrow keys.
Moreover, it is not set when the panel opens.
We fix this by sending the active CcBackgroundItem to the chooser, so
that it can add an "active-item" CSS class to the true active item.
Fixes#1756#2505
Manually tracking which properties are set on a CcBackgroundItem is only
properly done in the background XML loader. Doing this manually is
error-prone and should instead be done inside the relevant property
setters. That would avoid forgetting to set some of the flags, which is
especially relevant for comparing two background items.
This adds automatic setting of background item flags to fix this.
When colored backgrounds were a thing, these where set with style
G_DESKTOP_BACKGROUND_STYLE_NONE. Presumably, changes to these
backgrounds were stored in a local XML file.
Since the colored backgrounds were removed, let's also remove the code
tracking these colored background changes.
These symbols were soft-renamed in libmalcontent 0.5.0 (released in
February 2020), and we already depend on 0.7.0.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
After the port to AdwPreferencesPage and the
main switch being moved out from the headerbar,
the content of the sharing dialogs got a bit hidden,
which requires more scrolling.
Fix such issue by removing the height-request
property, so the window height can follow the content
height. Do the same for the Media Sharing dialog
to keep consistency. Also, use the same window width
in both dialogs (to also keep consistency).
Commit c0c357c3 (!2211) moved the "Remote Login" code to the System
panel. There are some leftover bits of code in the sharing panel though.
This cleans that up.
Closes#2895
Sorting providers and accounts by features flags makes it difficult to
thme how we like, so hard-code the sorting order based on the
non-localized provider name.
Remove the GOA subprocess helper and use GoaClient directly.
The GoaClient is loaded asynchronously, with the panel being marked
insensitive until ready. Any `CcPanel::parameters` passed while loading
are deferred until the client is ready.
- Remove the "Networks" title from CcSharingNetworks
and only use the titles from the AdwPreferencesGroups
- Remove the margins from CcSharingNetworks,
since AdwPreferencesGroup already has margins
- Remove unused `spacing` properties
- Replace the Media Sharing GtkGrid with a GtkBox,
like in the File Sharing dialog, and separate the
networks and folders section into their own
AdwPreferencesGroups
- Remove an unnecessary GtkListBox. It was added[1]
in order to make the "Require Password" and "Password"
rows to have the boxed-list style. Since the dialogs
from Sharing panel started to use AdwPreferencesPage/Group[2],
this GtkListBox is no longer necessary.
[1] 9a15a48d
[2] 45a5a1e0
Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2818