!1331 (merged) introduced a custom logger as a workaround for
a not ideal design choice, but the workaround is using g_printerr,
which is not adding linebreaks, so the logs were unreadable.
This doesn't fix the whole architecture of this part, but simply
adds a line-break so that at least the logs can be read by humans.
The panel tries to keep track of the icon theme in use
when HighContrast isn't. For that, it stores in
self->old_icon_theme. That is, however, always updated
when org.gnome.desktop.interface is touched, regardless
of whether HighContrast is already turned on.
Thus, it makes sense to check whether HighContrast is
selected in org.gnome.desktop.a11y.interface, and only
store the old_icon_theme under the condition
high-contrast wasn't selected.
fixes#2640
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
As discussed in #2636, the value label for the CcInfoEntry was made
selectable in order for screen readers to work. However, this selects
the first label by default when opening the system details.
This is caused by gtk#4377, for which gnome-software found a workaround.
The same workaround is adapted here to unselect the label after
presenting the system details window.
Since the error message label provided at the bottom only says that
the newly provided password is weak, it can be consfusing for the
users as they might not understand why they can't press 'Accept'
button. This could be especially true for color blind people.
Fix it by allowing modification of new password entry only if the old
provided password is correctly entered.
the calculation to center the panel row
was failing when the panel list was not
scrolled to the top.
Fix it by taking the distance from the
row to the CcPanelList, instead of the
GtkScrolledWindow that contains it.
Part of issue #2506
commit 02302c9b08 implemented vertical centering of
the panel being activated, but we should restrict
that to only happen when the activation is from the
Search view or from the set_active_panel_from_id()
CcShell iface, which covers the case of panel activated
from commandline parameter or from other panels, but
does not include activating panels manually by mouse
or keyboard which is the problematic case explained
in issue #2506Closes#2506
If the NMDevice is not active (i.e. if we are editing a connection that
is not active) then don't warn when failing to reapply changes to the
device. That's expected and not something we should warn about.
We could perhaps not even try, but the device could become inactive
between the time of our check and this error, so better ignore the error
regardless.
All of the following code assumes that self->device is valid, so we need
to skip over it. It's confusing, but this is a multipurpose dialog and
self->device is optional when creating the dialog. E.g. when modifying
VPN configuration, we update just the configuration, not an NMDevice.
If the operation is cancelled (because the dialog was closed, because
the Apply button was pressed), then trying to make further use of the
source_object is a use after free, which is bad. At first I tried to fix
this by simply avoiding the use after free when the operation is
canceled, but then I realized it is ridiculous to always try committing
connection changes when closing the dialog, then immediately cancel the
operation by destroying the dialog.
So instead I've decided to not pass the cancellable along to these
operations, and instead ref the dialog to keep it alive until the
operations complete. Instead, let's just hide the window.
This commit also removes an inaccurate comment /* Leave the editor open
*/ placed right before the call to the function that hides the editor.
There's no need to leave the editor open when updating the device fails.
The connection properties at least are still saved.
Fixes#2618