The resizing and movement mechanics for the avatar crop can be finicky,
because:
1. The crop resets to the last valid crop when you drag out of range, so
that a somewhat quick drag does not go to the edge.
2. A corner drag only works in one direction, as the use of
eval_radial_line is not correct.
3. A side drag acts the same as a corner drag.
4. A slow drag won't move the crop, especially if the widget is larger.
All these issues are fixed with this partial rewrite of the resize and
movement logic:
1. A drag out of range will result in a size that is guaranteed to touch
the edge, making a crop to the edge much easier.
2. Instead of fixing eval_radial_line, we just "bind" one side to the
pointer position, making both directions act the same for a corner
drag.
3. A side drag now scales around the center for the orthogonal side.
4. Rounding errors in calculating the previous delta are prevented.
As described in #2521, the automatic suspend row is currently shown
when Settings is running in a VM, in which case it has no effect.
This commit checks whether Settings is running in a VM and disables
showing the automatic suspend row in this case, as is done for the
Suspend/Hibernate rows. This prevents the user from being shown a
useless row in the power panel.
Closes#2521
Each connection now has a delete icon to forget a saved connection.
List can still be generated to include the checkbox to forget multiple.
Follows mockups for wi-fi panel. Add translation comments.
GTK has deprecated the AppChooser interface and related widgets.
These APIs will be gone in GTK5, so we should move away from
them as soon as possible.
This MR takes the opportunity to change the design to match newer
mockups while dropping deprecated APIs.
When switching from Mirror mode to Join mode
and opening a monitor leaflet child by clicking
its row, clicking Cancel on the title bar would
get the UI into an invalid state.
Closes#2513.
This was a copy-pasta mistake when creating the CcListRowInfoButton
class from the CcListRow class.
The mistake was harmless but fixing it is good for the sake of
consistency and to avoid confusion in backtraces.
The class Gtk.MessageDialog is deprecated in gtk 4.10.
This change remove class deprecated and uses the new class
AdwMessageDialog for view the message of 'reset all shortcut'.
keyboard: fix white space in function
keyboard: align arguments
keyboard: fix alignment of arguments in function
Clicking on the 'Custom Shortcuts' row when there are no custom
shortcuts causes the 'Add Custom Shortcuts' dialog to be shown for
all subsequent sessions. This is because the first stack defined was
'Add Custom Shortcuts', it would always be visible, as it was no
longer defined which stack was going to be shown.
Fixes (https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2479)