The header bar of the mouse panel can display a title, when
the stack only contains the mouse and the touchscreen subpanel.
This header bar, however, does not inherit the title widget from
the common CcPanel, as it contains the view switcher.
It is needed to add the correct title as a property to the switcher
to let it display this title, if no switcher is.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
The mouse panel currently does not show a button to navigate back,
but should do so if the window is folded.
fixes#2363
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Being able to close the QR code dialog by pressing the ESC
key would be a handy feature.
By switching from GtkWindow to GtkDialog, the QR code
dialog is closed when pressing ESC.
Closes#2357
The CcCropArea dialog fails to update cursor to 'default'
one when leaving the CcCropArea into the GtkHeaderBar.
Fix that by setting 'default' cursor in the "leave" event
of CcCropArea.
Closes#2359
the transient parent for the dialog was wrongly set to
its own window, causing following g_critical message:
Gtk-CRITICAL **: gtk_window_set_transient_for: assertion 'parent == NULL || GTK_IS_WINDOW (parent)' failed
libaccountsservice documents that it is undefined to access an
ActUser object's properties before the 'is-loaded' property is
set to try.
Control-center unfortunately sometimes accesses objects that
aren't fully loaded, leading to log spew and memory corruption.
This commit fixes the problem by setting up a signal handler
to listen for the is-loaded notification when necessary.
Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2348
Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2349
The current usage of CUPS IPP API does not work for temporary queues, because the g-c-c sends the request without creating a local printer first, so the request is sent to non-existing printer.
If you use the destination from cupsGetNamedDest() for printing, CUPS library does the local printer creation internally and printing test page will work even for temporary queues.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2148481
Many devices are able to scan a specifically formatted QR code to
connect to a wifi network.
To make sharing of wifi connections easier, it would be helpful to
display such a QR code in the wifi settings.
A button is added to the wifi connection row. This row is shown in
the general wifi settings panel, as well as in the "Known Wi-Fi Network"
dialog. Clicking the button opens an additional dialog, which shows the
QR code.
When adding new input sources, the first dialog shows a list of
languages, when single clicking one item you go to a subdialog
that has a 'go back' item, that item only works if double-clicking
it, but that is unintuitive because if you entered the dialog by
single click you also expect the 'go back' button to work by
single click too.
The subdialog is a GtkListBox configured to be double click,
because it has an 'Accept' header bar button and we don't
really want to activate the subdialog items by single click,
but the 'go back' row is special and as explained before it is
expected to work by single click too.
So this commit adds the required single click handler for the
'go back' rows created in CCInputChooser.
Fixes#1954
Fixes following warning when activating Users panel:
user-accounts-cc-panel-WARNING **: Error retrieving app filter for user (null): User 4294967295 does not exist
Initialize CcAvatarChooser a bit earlier so it does
not get used by show_user() before creation.
Fixes#2219
The Wi-Fi panel displays an old fashioned status page when NM isn't running. Also, it shows a generic error message instead of explaining why the error occurred.
This commit updates this status page to an AdwStatusPage, Also, it makes clear that the error happens because of NM not running.
Currently, this dialog doesn't have a minimum width and height.
It's possible to shrink it to an unexpected small size.
This commit adds a minimum width and height for this dialog.
This dialog appears with a really small size, making elements almost invisible.
Also, it can be shrunken to an even smaller size.
This commit sets a minimum width and height for this dialog.
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1826
The current layout intersection algorithm compares pointers to strings.
It assumes that `gnome_xkb_info_get_layouts_for_country()` and
`gnome_xkb_info_get_layouts_for_language()` will return two GList
containing pointers to the same strings. Looking at libgnome-desktop[1]
it seems like this is the case: given the same layout, the same pointer
to the layout id will be stored in both lists. However, this is an
implementation detail and we should not rely on that.
Rewrite the intersection algorithm in order to compare the strings. While
at it, use a more efficient algorithm: add all the items of the first list
to a set, then iterate over the second list and check if the item is in
the set. If this happens, remove the item from the set and add it to the
intersection list.
Probably the layout lists are not big enough to notice the difference, but
the complexity goes from O(N*M) to O(N+M).
[1] 3c8834af09/libgnome-desktop/gnome-xkb-info.c (L281)
country_layouts are being appended to the layouts_with_locale which results in less relevant
layout groupings. for example, we if choose Hindi language which is an Indian language,
all Indian language layouts are shown within it - including Tamil, Bangla etc.
furthermore, language_layouts are also getting appended for countries where they may not
belong, for example, English (Ireland) is shown when we search India.
The layouts_with_locale table is filled as union however it yields better
search results if we change that to intersection.
Relates #2114