- refresh the symbolic icons to sync some style changes and update the source sheet
- rename assets for the privacy subpanel's symbolic icons
- delete deprecated/unused symbolic icons
- add new icon for system panel
- add new icon for remote desktop so it isn't using displays icons
The Power panel currently installs "info-symbolic"
in /usr/share/icons, which makes this icon to appear
as a pre-installed system icon. This makes app
developers to use this icon in their apps
under that assumption.
Ship this icon as a gresource to fix this.
Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2865
Using `g_clear_handle_id()` in combination with `g_source_remove()` can
save a lot of boiler plate code.
This removes about 110 lines of code for free.
This code does not work as expected in X11, since the GdkDevice
that GTK gives us is the Virtual core pointer, and not the hardware
device that is driving it at the moment.
Since there's no way to ask for this information to GTK4, query
XI2 indirectly about it, by checking the source device that the
Virtual core pointer inherited its XIValuatorClass classes from
(e.g. pressure), then querying that source device /dev node path.
Originally the screen reader wasn't reading the text of the label
within the popover. It read when we set label.selectable = True.
That had the side-effect of making the label have the visual look
of a selectable label (as expected).
This hack unsets the selectable state of the popover when it is
visible, but that still allows the screen reader to read the label.
Fixes#2508
Part 1:
Currently all graphics devices have to share a single row for their names, this method doesn't pretty well for devices with long names or computers that may have multiple GPUs.
The new mockup fixes this by having a separate entry for each graphics device.
This commit turns graphics_row into a GtkBox, graphics_row is going to act like a space where gpu entries will be placed.
graphics_row will be populated in the code using create_graphics_row() to have separate entries for each graphics device
Part 2:
Currently all graphics devices have to share a single row for their names, this method doesn't pretty well for devices with l>
The new mockup fixes this by having a separate entry for each graphics device.
This commit adds a method to popuplate graphics_row with GPU information entries.
It uses the existing logic from get_renderer_from_switcheroo to iterate over a list of graphics devices and build a CcInfoEntry for each device.
It finally appends the widget to graphics_row
Part 3:
Currently all graphics devices have to share a single row for their names, this method doesn't pretty well for devices with l>
The new mockup fixes this by having a separate entry for each graphics device.
The list of graphics devices is now processed in create_graphics_rows function, so remove that logic from get_renderer_from_switcheroo () and return a GSList instead of a string.
graphics_hardware_string has been renamed to graphics_hardware_list to imply the change.
Since create_graphics_rows expects a list, get_graphics_hardware method has been modified to create a renderer list from the outputs of get_renderer_from_session or get_renderer_from_helper in case that get_renderer_from_switcheroo fails.
The widget should default to showing the error message when its
missing its respective GPermission object, instead of throwing
a critical error message.
We also hide the "Unlock" button when there's no GPermission set.
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1708
This was a copy-pasta mistake when creating the CcListRowInfoButton
class from the CcListRow class.
The mistake was harmless but fixing it is good for the sake of
consistency and to avoid confusion in backtraces.
While GTK will flip most things for RTL languages, that shouldn't be
the case for displaying time.
These changes make sure that the time-entry/editor behave as expected
in RTL languages.
Fixes#2504
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
AdwBanner is a new adaptive widget that replaces GtkInfoBar.
AdwBanner adapts better to mobile sizes and has an API
that fits with how we use infobars.
This commit changes CcPermissionInfobar to use an AdwBanner
internally instead of a GtkInfoBar. It also re-implements
part of GtkLockButton, as AdwBanner does not support adding
arbitrary widgets.
When having multiple GPUs, each GPUs are now seperated by a newline
instead of the previously used seperator: " / ".
This particular fix works ONLY for systems that use switcheroo-control.
Also, this commit allows the 'secondary_label' of 'CcListRow' to have
'lines' set to '4' and 'wrap' to 'True', along with 'hexpand'
and 'halign' set to 'True' to accommodate long strings on all labels
which previously suffered from a issue of getting truncated if
the strings are too long.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2125
We pass to the setter a const char* but we don't control the ownership
of that and it may be returned later from the property getter.
While this is not causing any crash right now, going in the inspector
and try to check the property leads to some scrambled chars which seems
an indication of a memory error.
In general the string passed to these APIs could come from anywhere and
it's not guaranteed that it's always a constant string (and in fact is
not in some cases).
Since the entry already shows an apply button, update hostname only
after the apply button is clicked. It's not required to update
hostname after every character change.
This was a hack added for libhandy-0, which is no longer required.
Also, this hack results in the switch not working when gtk animations
are turned off.
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
cc-common-resources.h is used by both libwidgets and liblanguage, and
so must be generated before they build. However, Meson wasn't aware
of this dependency which resulted in a race condition during build.
Conveniently, "generates_sources_dep" already contains other generated
sources used by these two libraries, so adding cc-common-resources.h
to this list is enough to declare the dependency.