When the "Automatic" mapping is chosen for a display-attached tablet device,
Mutter is in charge of applying the heuristics to map the tablet device to
its most likely attached display.
When that happens, the Wacom panel does not know better (or anything)
to show the calibration UI than picking a GdkMonitor and hoping for the
best.
To improve this situation, Mutter has been added a D-Bus interface so it
is possible to query it for the output that a tablet device is mapped to.
This commit adds the support for this interface, so that the Wacom panel
does know to pick the right GdkMonitor to fullscreen the calibration UI on.
Showing an arrow for an empty expander row for the event confuses the user.
The user may misunderstand there is the information behind the arrow and then
the user will click it but will not get any response from the panel.
Therefore, to prevent confusing the user, the expander will be hidden for a
event with an empty description.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2031
Signed-off-by: Kate Hsuan <hpa@redhat.com>
When requesting the chassis type through systemd-hostnamed, it sometimes
returns an empty string "" not the "vm" to present the virtual machine.
Since this panel will not be shown in the VM environment, if systemd-hostnamed
returns an empty string or "vm", the panel will be hidden.
Signed-off-by: Kate Hsuan <hpa@redhat.com>
Change the add printer button text, from the empty state section, to "Add Printer..."
(previously was "Add a Printer...") so it gets consistent with the add printer button
from the headerbar (in Printers panel) and with other buttons in Settings that end with
ellipsis, such as the "Add Picture..." from the Appearance panel, which doesn't have the
article also.
The AdwComboRow widget has a selected-item property, while we were
connecting to selected-index (which doesn't exist.
It is likely that selected-index existed in the past in libhandy
or libadwaita and this is a regression during the port to GTK4.
Fixes#2025
The AdwComboRow widget has a selected-item property, while we were
connecting to selected-index (which doesn't exist.
It is likely that selected-index existed in the past in libhandy
or libadwaita and this is a regression during the port to GTK4.
Fixes#2025
If on the Security tab in the connection editor one selected 802.1x
with TLS authentication, the 3 file chooser dialogs there didn't
let one select any file. This was because allowed extensions were
passed to gtk_file_filter_add_suffix () with the leading dot but that
function expects them without the leading dot.
This could be fixed in the code by skipping over the dot but as per
discussion on !1433 it is preferable to use mime types instead. The
code is changed to use mime types for the file chooser dialog filter
and for checking a file is of the right type.
Fixes#2022.
The way shortcuts in mutter/gnome-shell work is that it looks up the
keycode that generates the shortcut keyval at the lowest shift level and
then checks if all the modifiers match. This does not work for shortcuts
that for example include "dollar" to represent "<Shift>4", because on
some keyboards/layout there is a separate dollar key key with its own
keycode. This would be at a lower shift level than "<Shift>4".
By always translating such shortcuts to "<Shift>number", we make sure
the resulting shortcut will work in the shell and is closer to what the
user likely intended the shortcut to be, because numbers are usually
assigned to things that can be enumerated, such as workspaces or
favorite applications.
This also special cases the num-row key on layouts such as AZERTY, where
the number is the shifted keyval, to always prefer the number. Due to
the way the shell interprets these shortcuts, they still work and by
always using numbers they work across different layouts.
This change also fixes that pressing "<Shift><Super>4" was turned into
"<Shift><Super>dollar", which effectively included the "<Shift>" twice.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1528
../panels/region/cc-region-panel.c: In function 'set_restart_notification_visible':
../panels/region/cc-region-panel.c:131:17: warning: 'current_locale' may be used uninitialized [-Wmaybe-uninitialized]
131 | uselocale (current_locale);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
../panels/region/cc-region-panel.c:115:18: note: 'current_locale' was declared here
115 | locale_t current_locale;
| ^~~~~~~~~~~~~~
../panels/region/cc-region-panel.c:130:34: warning: 'new_locale' may be used uninitialized [-Wmaybe-uninitialized]
130 | if (locale && new_locale != (locale_t) 0) {
| ~~~~~~~~~~~^~~~~~~~~~~~~~~
../panels/region/cc-region-panel.c:114:18: note: 'new_locale' was declared here
114 | locale_t new_locale;
| ^~~~~~~~~~
Check whether the currently removed printer was last. Also
check whether there are other printer being removed by CUPS
right now (their amount is still part of self->num_dests).
Do this check also in actualize_printers_list_cb() to catch
corner cases from timing point of view. This will handle them
with some delay if they show up.
When undone, just check whether the number of printers is higher
than 0 and show the printers-list page.
Fixes#2023
This is detectable with -Wincompatible-pointer-types and warns with
[1/7] Compiling C object panels/printers/libprinters.a.p/cc-printers-panel.c.o
../panels/printers/cc-printers-panel.c: In function ‘cc_printers_panel_init’:
../panels/printers/cc-printers-panel.c:1228:59: warning: passing argument 3 of ‘gtk_builder_add_objects_from_resource’ from incompatible pointer type [-Wincompatible-pointer-types]
1228 | objects, &error);
| ^~~~~~~
| |
| gchar ** {aka char **}
In file included from /usr/include/gtk-4.0/gtk/gtkbuildable.h:26,
from /usr/include/gtk-4.0/gtk/gtk.h:56,
from /usr/local/include/libadwaita-1/adwaita.h:9,
from ../shell/cc-panel.h:25,
from ../panels/printers/cc-printers-panel.h:21,
from ../panels/printers/cc-printers-panel.c:23:
/usr/include/gtk-4.0/gtk/gtkbuilder.h:122:66: note: expected ‘const char **’ but argument is of type ‘gchar **’ {aka ‘char **’}
122 | const char **object_ids,
| ~~~~~~~~~~~~~~~^~~~~~~~~~
[7/7] Linking target tests/network/test-wifi-panel-text
If you did not know the Wacom Express Key Remote (or EKR for short),
let me introduce it to you:
https://estore.wacom.com/media/catalog/product/cache/fb4143a007ae6439deba9b18afd745f2/a/c/ack-411050_main_2.jpg
This is a hand-sized standalone pad device, meant to be used together
with drawing tablets, providing additional buttons and a touch sensitive
ring that can be mapped to actions and keypresses.
These pads were so far handled in GNOME, but in a very subtle manner.
As the EKR is implicitly paired to a tablet, it was possible to map
EKR buttons from the paired tablet once the pad OSD UI from GNOME
Shell was shown.
As this device basically just needs a "Map buttons" action to
configure it, it just didn't sit well in the older Settings UI,
it would get a separate page with just a lone button in there. So
its support has been kind of an easter egg so far.
But the new UI can indeed accomodate better a device that is neither
tablet nor stylus, and has few options. This commit adds the EKR
as a separate AdwPreferencesGroup.
The selected_user variable is unref on dispose(), and show_user()
is likely executed with self->selected_user already set to user,
but it's inconsistent, and so to be on the safer side, use
g_set_object()
If the goa helper fails to find goa helper executable (which happened when run
without install), %NULL is returned. Avoid feeding g_variant_parse(), the %NULL
variable in those case as it is not nullable and avoid the crash that follows.
When the options are changed, the first item was never shown as
active when selected. Fix it by binding to the inverse of the
button state instead of binding both toggle buttons to settings.
Fixes#1653
We set AM/PM label on format change in init(),
but we shall not have set the time in the editor
in init() which results in wrong label if the time
is PM.
Fix it by updating clock label after time changes
The network panel used to show an empty box under the VPN header at
start up if no VPNs were present instead of the empty state. This was
because the GtkListBox containing VPN connections was visible by
default instead of the empty state widget.
To fix this, the empty state widget has been moved to the top in the
GtkStack to show it by default. If any VPN connections are found during
initialization, `cc-network-panel` already handles setting the
visibility of the appropriate widget correctly.
Fixes: #1634
Previously, if os-release included the BUILD_ID field, it was smushed
into the OS Name row as follows:
OS Name Endless OS 5.0.0; Build ID: 220810-230009
This is unsightly in English; and in languages where the translations of
"OS Name" and "Build ID" are long, the build ID may be ellipsised and
hence useless:
Nom du système Endless OS 5.0.0 ; (identifiant de construction ...
d'exploitation
Instead, display the build ID in a separate row, and hide it if not
present.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1347
As described in #1976, the printers panel shows two Add Printer buttons when the
printers list is empty. Adds a check that sets the Add Printer button in the toolbar
to be invisible when the empty-state page is shown (and thus the other Add Printer
button is visible), creating a less confusing UI.
Closes#1976
The new UX implementation includes
1. Showing the security level using a number.
2. Showing descriptions of events and HSI checking items.
3. Change the style of the security level number.
4. Add the status icon and label for each HSI checking item.
Signed-off-by: Kate Hsuan <hpa@redhat.com>
The "Forget" button would only update it's sensitivity after the first
select and deselect, when selecting and deselecting rows in the
"Known Wi-Fi Networks" dialog.
When selecting the first row, it would go from disabled to enabled.
Then deselecting that row would cause the button to go from enabled to
disabled.
Selecting any rows after that would no longer update the sensitivity and
make the dialog essentially useless.
The issue was, that the signals "add" and "remove" where being
expected to be emitted when the connection list updates its rows.
However, neither CcWifiConnectionList nor GtkListBox emit these signals.
The fix was, to emit these two signals at the appropriate locations.
The signals have also been renamed to "add-row" and "remove-row" to
make their purpose more clear.
Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1824