The newly introduced CcListRowInfoButton is not available
to GtkBuilder and henceforth building the mouse panel
currently fails.
Therefore, it CcListRowInfoButton has to be declared to
be a type that needs to be available to this panel.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
The touchpad row has a switch suffix that allows enabling/disabling
touchpad.
To prevent users from being left with no pointer device, we were
hiding the suffix switch of the touchpad row, making the row look
weird with a label and no action.
Let's hide the entire row instead, as suggested by designers in
comment https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1649#note_1643002Fixes#1649
Error building template class 'CcSearchPanel' for an instance of type 'CcSearchPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcDisplayPanel' for an instance of type 'CcDisplayPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcMousePanel' for an instance of type 'CcMousePanel': .:0:0 Invalid object type 'CcIllustratedRow'
Error building template class 'CcKeyboardPanel' for an instance of type 'CcKeyboardPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcRegionPanel' for an instance of type 'CcRegionPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcUaPanel' for an instance of type 'CcUaPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcAvatarChooser'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcTzDialog'
cc_tz_dialog_get_selected_location: assertion 'CC_IS_TZ_DIALOG (self)' failed
dumped core
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcInfoOverviewPanel' for an instance of type 'CcInfoOverviewPanel': .:0:0 Invalid object type 'CcHostnameEntry'
Instead of creating multiple and more complex GSetting bindings for the
sensitive state, just bind the sensitivity of the touchpad widgets to the
active state of the touchpad toggle switch
If doing so, these options may be marked as sensitive by GSettingsBind,
ignoring the send-events global setting binding; and causing the widgets
to be always sensitive regardless the touchpad state.
We may get an infinite loop on mouse panel startup, in fact the scroll
method changed event emits a gsettings change that also leads to a
notify::use-default emission that again tries to writes to settings,
leading to another change: infinitely.
Closes: #2405
This should significantly simplify these panels, by not forcing
them to override GObject.constructed all the time. Most panels
were quite straightfoward.
This one is an interesting case. It was easier to simply switch
to AdwPreferencesPage than actually port all the GtkFrames in
there.
In addition to that, the mouse test page now uses a GtkPicture
instead of a GtkImage, and the GtkDrawingArea API changes are
reflected in the code.
In Right-to-left locales GNOME Settings presents a button on the
left with the translated label "Right" and a button on the right
with the translated label "Left".
These changes prevent the flip of the direction buttons in RTL
locales.
Fixes#1101
We're showing all widgets on panel start up instead of selectively
hiding non-relevant widgets since the gtk_widget_show_all() on the
stack after creating the panel widget and adding it to the stack
overrides the visibility decisions done while constructing the panel.
https://bugzilla.gnome.org/show_bug.cgi?id=764257
Make it possible for panels to go all the way to the edge of the
shell. This is particularly important for panels that scroll, such
as the new power panel. All other panels are changed to compensate
for the loss of external padding.
https://bugzilla.gnome.org/show_bug.cgi?id=691229
This makes loading faster, with less I/O, avoids unnecessary
code duplication (around 1k lines shaved), and ensures that
all the panels link and work appropriately.
By the same token, it will stop external panels from being
created, and loaded.
https://bugzilla.gnome.org/show_bug.cgi?id=690036
This prevents window resizes from making the first visit to the
mouse test area one that doesn't scroll all the way to the bottom.
1. Open System Settings
2. Open a panel that's smaller than the mouse one (eg. Background)
3. Back to overview
4. Open Mouse panel, click on test button
https://bugzilla.gnome.org/show_bug.cgi?id=684817