If crop.x changes due to a drag, crop.x + crop.width remains fixed, as
thet is the opposite edge. However, in the mapping of paintable to
widget coordinates, crop->x + crop->width can vary due to rounding
errors. This fixes that, so that crop->x + crop->width does not vary,
with the same fix in the y direction.
However, the edges of the circle can still remain jittery due to integer
rounding, which is not fixed by using 'width / 2.0' instead of 'width /
2', since the width and height might differ by a pixel. Instead, draw an
ellipse, which removes edge jitter completely.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1824>
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.
When implementing the workaround to allow us to use libadwaita
as a subproject, we forgot to move the default options to our
subproject declaration. This caused libadwaita's tests to be
built and subsequently fail our test stage.
This commit puts the options in the right place.
libadwaita 1.4 depends on appstream, and builds have
been failing because the subproject fails to build.
This commit adds appstream as a dependency so that
the libadwaita subproject can build without issues.
We also bump FDO_DISTRIBUTION_TAG to rebuild the image.
Improve keyboard navigation with Up/Down arrow keys between
Search entry and the search results list.
Pressing Arrow Down in search entry will now move focus
to search list, and when pressing Arrow Up on the first
list result will move back focus to Search entry.