Commit graph

7068 commits

Author SHA1 Message Date
Carlos Garnacho
92b784f561 wacom: Use Mutter's input mapping interface to show calibration UI
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.
2022-09-01 23:14:07 +02:00
Kate Hsuan
ac74cf695c firmware-security: hide expander arrow when event description is unavailable
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>
2022-08-29 16:11:14 +00:00
Matthias Clasen
920302bb52 background: Allow all images
The code was filtering with a small list of known
image mimetypes, needlessly. Just allow any
image/* mimetypes.

Fixes: #2036
2022-08-25 17:06:12 +00:00
Richard Hughes
12352f8c1a firmware-security: Move the workaround for UEFI Secure Boot lower
This fixes the toplevel security level to correctly show failed.
2022-08-25 14:37:14 +00:00
Felipe Borges
ff904208cb sound: Fix sound alert selection
The mapping between sounds and the UI elements was wrong.

Fixes #2026
2022-08-25 16:08:24 +02:00
Kate Hsuan
0245329949 firmware-security: Hide the panel when chassis type is an empty string
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>
2022-08-24 14:39:33 +00:00
Richard Hughes
be3d9752bc firmware-security: Handle platforms that do not have a valid set of HSI tests
This affects aarch64 and older AMD devices.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2014
2022-08-24 14:39:58 +01:00
Richard Hughes
941fdeaa05 firmware-security: Only show events that have changed value 2022-08-24 14:27:59 +01:00
Felipe Borges
37921f8a46 display: Fix primary monitor selection issue with AdwComboRow
We were connecting to the selected-index property when AdwComboRow
actually has a selected-item property. This is the same as
issue #2025

Fixes #2028
2022-08-24 11:18:35 +02:00
sunflowerskater
53ff717b4d printers: Use the same sentence for "Add Printer" in button and empty-state
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.
2022-08-24 08:46:55 +00:00
Felipe Borges
3a31e34514 power: Fix "Power Button Behavior" setting now applying
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
2022-08-23 15:26:46 +00:00
Felipe Borges
37f5cbe6af power: Fix blank-screen settings not applying
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
2022-08-23 15:26:46 +00:00
Jake Dane
1ae4d99421 network: Fix 802.1x TLS file chooser filters
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.
2022-08-23 10:28:19 +00:00
Sebastian Keller
7f6dc4511f tests: Add test for keyboard shortcut normalization
This tests if the shortcuts generated from an event are in the format
that the shell expects.
2022-08-22 12:49:13 +00:00
Sebastian Keller
bad61a2229 keyboard: Handle shift shortcut modifier the same way as the shell does
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
2022-08-22 12:49:13 +00:00
Sebastian Keller
986a37ff6c keyboard: Split out function to normalize keyval and modifier mask
This will allow it to be tested in a unit test in an upcoming commit.
2022-08-22 12:49:13 +00:00
Pablo Correa Gómez
b9a684dc1d region: fix warning of uninitialized variables
../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;
      |                  ^~~~~~~~~~
2022-08-20 20:47:35 +00:00
Pablo Correa Gómez
7846e57bfe region: fix possibly unused variable
../panels/region/cc-format-preview.c: In function 'update_format_examples':
../panels/region/cc-format-preview.c:70:16: warning: unused variable 'fmt' [-Wunused-variable]
   70 |   const gchar *fmt;
      |                ^~~
2022-08-20 20:47:35 +00:00
Pablo Correa Gómez
32b5e5dcb3 region: fix permissions_acquired always returning FALSE 2022-08-20 20:47:35 +00:00
Pablo Correa Gómez
18eea16ff3 keyboard: fix permission_acquired always returning FALSE 2022-08-20 20:47:35 +00:00
Marek Kasik
5ceabcb5c7 printers: Show empty-state after removal of the last printer
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
2022-08-18 17:01:02 +02:00
Felipe Borges
4ea4f41e20 printers: Pass correct argument to gtk_builder_add_objects_from_resource
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
2022-08-18 15:33:38 +02:00
Carlos Garnacho
39402f21ba wacom: Show distinct entries for Wacom Express Key Remote
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.
2022-08-17 11:57:33 +00:00
Felipe Borges
32f73d9045 search: Use "action" to connect to Move up/down actions for rows
Using "action-name" wasn't triggering the callback.

Fixes #2013
2022-08-17 09:41:54 +00:00
Mohammed Sadiq
38d62974b6 user-panel: Fix possible invalid free
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()
2022-08-17 08:21:34 +00:00
Mohammed Sadiq
234485fd19 online-accounts: Fix a possible crash on parsing NULL string
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.
2022-08-17 08:16:28 +00:00
Mohammed Sadiq
a4aa214d76 info-overview: Use adw-external-link icon
Replace the use of external-link-symbolic which doesn't
work with dark theme
2022-08-17 08:09:15 +00:00
Mohammed Sadiq
5f3b16b288 keyboard: Fix activation of input source toggle button
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
2022-08-15 08:26:16 +00:00
Mpho Jele
5782c7312c display: remove unused night light dialog code 2022-08-15 08:14:27 +00:00
Mohammed Sadiq
08b1f05a2a user-accounts: Fix a typo in property name 2022-08-15 07:55:36 +00:00
Mohammed Sadiq
ff39de678b common: time-editor: Fix initial AM/PM label value
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
2022-08-14 21:34:07 +05:30
Mohammed Sadiq
57c919b7d9 common: time-entry: Emit time-changed on time change 2022-08-14 21:33:52 +05:30
Athul Iddya
43b61571c1 network: Show VPN empty state by default
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
2022-08-12 01:32:15 +00:00
Will Thompson
50a92f110d info-overview: show BUILD_ID in separate row
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
2022-08-12 01:24:37 +00:00
Nils Lück
3194a1890f Migrate CcPasswordDialog from AdwPreferencesWindow to AdwWindow 2022-08-12 01:24:10 +00:00
Jakub Steiner
9def0c98e3 sound: tweak default alert sounds
- one more review pass by the designers:
  - shorter
  - tone down reverb
  - fine tune the pan on swing
  - forceful fade out to 0 on all clips
2022-08-11 16:36:59 +02:00
Eric Daigle
a71c3ac3c3 cc-printers-panel: don't show two Add Printer buttons at once
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
2022-08-11 13:08:02 +00:00
Jakub Steiner
e3395b1dc3 sounds: EQ sounds
- few EQ and timing adjustments to the sounds

See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/264
2022-08-11 12:20:23 +00:00
Felipe Borges
878171bd7c sound: Update sound alerts
Old sound alerts set by users will be migrated to the "click"
sound alert.

Fixes #264
2022-08-11 12:20:23 +00:00
Georges Basile Stavracas Neto
0aed0c5ecd applications: Tweak screenshot description
As per design feedback, tweak the screenshot description text to
"Take pictures of the screen at any time."
2022-08-10 16:50:41 -03:00
Kate Hsuan
82b6e2c7bb firmware-security: Tweak panel style
Fix the spacing issues of several widgets, including the status icon,
label, and subtitle in a expander row.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1999
Signed-off-by: Kate Hsuan <hpa@redhat.com>
2022-08-10 16:31:26 -03:00
Georges Basile Stavracas Neto
17b018a9fb applications: Add support for the screenshot permission
Add support for managing the screenshot permission, used by apps
who request non-interactive screenshots from the portal.

See also https://github.com/flatpak/xdg-desktop-portal/pull/851
2022-08-10 19:03:15 +00:00
Kate Hsuan
57fb0e28ae panels: firmware-security: Fix incorrect secure boot icon
If Secure boot is enabled, secure_boot_icon should be channel-secure-symbolic.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1998
Signed-off-by: Kate Hsuan <hpa@redhat.com>
2022-08-10 11:47:52 +08:00
Georges Basile Stavracas Neto
6fd7164837 Revert "applications: Add support for the screenshot permission"
This reverts commit 49486dba68.
2022-08-08 17:24:42 -03:00
Georges Basile Stavracas Neto
78434394b2 applications: Add missing end period to Storage row 2022-08-08 19:32:20 +00:00
Georges Basile Stavracas Neto
94b591ac42 applications: Fix header capitalization of background row 2022-08-08 19:32:20 +00:00
Georges Basile Stavracas Neto
49486dba68 applications: Add support for the screenshot permission
Add support for managing the screenshot permission, used by apps
who request non-interactive screenshots from the portal.

See also https://github.com/flatpak/xdg-desktop-portal/pull/851
2022-08-08 19:32:20 +00:00
Kate Hsuan
784f83eb44 panels: firmware-security: new panel UX design implementation
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>
2022-08-04 19:46:28 +00:00
Felipe Borges
c2145cacf4 user-accounts: Use "title" styling for login history dialog header
See https://docs.gtk.org/gtk4/class.HeaderBar.html#gtkheaderbar-as-gtkbuildable

Fixes #1958
2022-08-03 11:16:26 +00:00
Hendrik Müller
48497080b3 wifi: Fix bug in Known Wi-Fi Networks dialog
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
2022-08-03 11:05:16 +00:00