Settings shows list rows with radio buttons before the
row title. However, the alert chooser looks inconsistent
because it shows the radio buttons at the end of the list
rows.
Fix that by setting the radio buttons as prefix widgets.
With this change, Orca now reads the word
"speaker", for example: "Front Left Speaker push button"
instead of "Front Left push button".
Also, remove the a11y labels because Orca also reads
tooltips.
The output test wheel is fixed size with a size of 300px
and a margin of 60px on both sides. Decreasing each value
by 20px, makes it fit a width (and height) of 360px.
see: !1563
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
While the combo box for devices can get ellipsized labels,
the one for the profile cannot. For Bluetooth profiles
with long descriptive names, this can lead to large
minimal widths for the combo box, the row, and the panel.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Meson extracts them by itself and add them as dependencies for the target.
It means one less location to keep track of files, and a lot less boilerplate
around the meson files
For unknown reasons, GVC mixer control can sometimes signal a new
device with the same id as one that was added before. This means that
in `device_added_cb`, a duplicate entry with that id is created, in my
case with a different name. However, the last one added is valid, but
that one cannot be selected because all other logic in the sound panel
assumes the first hit in `get_iter` is valid. This breaks sound input
selection then.
The fix is easy; only add a new list entry if none with that id exists.
Previously this was problematic because the current layout is a bit
messy. The reasoning is a bit complex, but I'll try to explain below.
Basically the AdwPreferencesGroup has an integrated GtkListBox where the
rows should normally be added to it by declaring AdwPreferencesRow
subclasses as its direct children in the UI file. This is not currently
done in the sound panel and we instead have another GtkListBox as its
direct child, while the "No Devices" row is actually a AdwPreferencesRow
subclass, so we end up with two listboxes with .boxed-list style. The
problem is that we hide the "No Devices" row when there are devices
available, but the internal listbox is still there, so we still see its
shadows.
This commit just separates the "No Devices" row in a separate group so
that we are sure to hide everything correctly.
Just measure the label to make GTK not complain about allocating
children without measuring anything. Measuring all the buttons is an
overkill because we expect this widget to have the minimum size
overwritten by CSS either way.
When pressing the mute button after the volume slider is manually moved
to 0 (and so the GVS "is-muted" property is still FALSE), set the volume
to 25% instead of actually muting the stream.
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/520.
The logic inside it is a bit reworked to make it more consistent. The
mute button and the slider now only communicate directly with GVC. The
notify callbacks are now used to change the UI states.
This fixes the UI problem of the mute button being "raised" when pressed
(see https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/520).
This is useful for the next commit because the stream list will be moved
in a separate window and to do that we need an always-updated list of
the playing streams. Without this approach, we would lose all the
streams that played before the user opens the stream list window. Also,
this allows us to decuple data and UI, which is definitely not a bad
thing.