For a managed GtkShortcutController, changing its propagation phase
away from `GTK_PHASE_BUBBLE` currently results in a lingering reference
due to a bug in GTK (gtk#6246). This means the Escape key shortcut
remains active even after leaving the Display panel, resulting in a
crash when pressing Escape in any panel after leaving the Display panel.
This is now fixed in GTK (gtk!7115), but there seems to be no reason for
changing the propagation phase at all anyways. Since the callback
returns `GDK_EVENT_PROPAGATE` when it does not activate, the event
should still make it to other handlers.
So, to speed up the fix for gnome-control-center, we remove the
propagation phase changes althogether. There is also no need to let the
shortcut have global scope, managed is enough.
Closes#2768
When a permission for an app is reset, e.g. via:
flatpak permission-reset APP_ID
the Changed signal simply contains one fewer entry in its dictionary. If
we had a row for an app_id, and such app_id is not in the new
permissions we remove the row from the list box.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2993
By creating a .cc-placeholder-row style class that
sets a padding, it won't be necessary to set margins
to every GtkLabel that is being used as list box
placeholder widgets.
Use em dash in the "Error: some settings cannot be unlocked",
which is now "Error — some settings cannot be unlocked".
This improves consistency with the banner from Online Accounts
which says "Offline — unable to connect accounts" when the device
is offline; this banner text uses an em dash.
Since we started moving some settings from the Sharing panel to other
panels, we were left with only tree things in the Sharing panel for
gnome-46: hostname row, file sharing row, and media sharing row.
The hostname row is already in System ->About, so we should check
whether file-sharing or media-sharing are supported and show the panel
accordingly.
Fixes#2979
So that we have a function to check whether we should show the "Media
Sharing" row.
This is going to be useful when we will try to hide the entire panel if
both "Media Sharing" and "File Sharing" aren't available.
Since [1], the crosshair options are now inside an
AdwExpanderRow, meaning that they don't need to be
insensitive when the "Crosshair Lines" option is
disabled because they get hidden in such case.
However, the "Overlap Mouse Cursor" row wasn't updated
in [1] to reflect that, so address this issue.
[1] 054d9c8769
When the Crosshair Lines option is disabled, the crosshair options
appear insensitive and consume vertical space unnecessarily. Use
AdwExpanderRow to fix this.
- Rename the "Other Media" row to "Other Media Types" (including
the window title) and remove its subtitle
- Rename "Automatically Launch Apps" row to "Media Autostart"
and use "Start apps or prompt when media is connected" as its new
subtitle
Reference:
288a451db2
Using a GtkStack isn't necessary to display the "Not set up"
row. Instead, use a GtkListBox placeholder widget in the main
VPN list box.
This improves consistency with the placeholders from "Privacy >
Location/Camera/Microphone" when there are no apps; same thing
in "Search > Search Locations > Custom Locations" when no custom
locations were added.
https://docs.gtk.org/gtk4/class.ListBox.html#gtklistbox-as-gtkbuildable
Even though `cc-keyboard-item.c` contains no translateable strings, it
does contain a `g_dpgettext2()` call for the "gtk40" domain. Damned Lies
still picks this up.
So, add `cc-keyboard-item.c` to POTFILES.skip, which also fixes the
updated ci from the previous commit.
Change the `gettext` grep to also include a possible `g_dpgettext2`.
This also changes the grep command to "normal" (extended) regex,
which is perhaps easier to read without all the escaping backslashes.
- Add a tooltip
- Remove the a11y label because Orca also reads tooltips
- Remove the .image-button style class as it's automatically
added if a GtkButton has an icon
- Remove the use-underline property as it's pointless in
a button without a label
HIG says that "Text generally shouldn’t end with a period.
This applies [...] text that is written as a complete sentence",
but the page description text isn't written as a complete sentence,
so the guideline isn't applicable in this case.
https://developer.gnome.org/hig/guidelines/writing-style.html
Some of our list rows launch dialogs. Our callbacks were plain
adw_dialog_present (dialog, parent) calls.
Lets delete that code and call adw_dialog_present directly where it
makes sense.
When using the copy buttons from Desktop Sharing/Remote Login pages,
the toasts don't show that the values were copied to the clipboard,
unlike in System > Secure Shell/About > System Details, for example.
So, fix this inconsistency.
The .tls-cert-fingerprint style class is part of "Verify Encryption"
dialog from the Remote Desktop feature, which is now present in the
System panel. sharing.css isn't needed anymore.
"Add" and "Enroll" buttons can still be sensitive without
calling main_page_validate() and enroll_page_validate()
respectively. Add an assertion check in both cases to
prevent these buttons being sensitive incorrectly.
Co-authored-by: Matthijs Velsink <mvelsink@gnome.org>
Doing so, the firmware-security-dialog and
firmware-security-boot-dialog can show more text (which can
increase in some translations) without having a scrollbar.
This complements the following commit:
c252c3c861
Commit b76d6d0d (!2130) added a thousands separator to the speed label
for ethernet. This did not affect the tests, as they are run under the
`C` locale, meaning no separator was present in the tests and the label
test matched.
However, running tests with locale set to `en_US.UTF-8` for example
fails, as the label then reads "1,234 Mb/s" instead.
Fix this by adding a wildcard in the place of the separator.
Now that the CI checks for any mistakes in POTFILES.in, let's fix it
completely.
I manually checked any removed files if strings were accidentally not
marked as translatable, but there were none. Note that this is a benefit
of also checking for files that are in POTFILES.in but are not
translatable; accidental removal of translation markers can be caught.
The `*gettext()` function family is only translatable for us if it
contains string literals or uses our `GETTEXT_PACKAGE` domain. A broad
`'gettext *('` grep will therefore not work.
So, narrow the grep a bit to only work for `*gettext()` call where the
first argument is a string literal or `GETTEXT_PACKAGE`.