Commit d980e0ffee fixed an issue when the "Left" button would appear
at the right side for RTL languages given that GtkBox would reorder
its horizontal children to RTL direction.
The solution at the time was to force the primary-button box to stay
in LTR direction when the rest of the interface is shown in RTL.
This introduced a regression where the CSS "linked" style of the
buttons used was the LTR one, breaking the "linked" styling.
This fix will manually reorder the Left/Right buttons rather than
calling gtk_widget_set_direction on the primary-button-box.
Fixes#2649
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
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
The start title buttons of the main window should be displayed if and
only if the end title buttons are. Only the left-most header bar should have
the start title button set and only right-most header bar the end title buttons.
Therefore, the title buttons property should be bound to the leaflet state:
When unfolded the start title buttons of the sidebar's header bar are
the only ones visible then, and not a second pair in the panel's header bar.
Likewise, in a folded state of the leaflet, the panel's header bar displays
all availble title buttons – start and end – as the panel is the only widget
displaying a header bar.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
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>
This code changes rename the Test Your Settings button to
Test Settings to reduce the button width size.
By reducing button size it also impact the position of panel title to more centric.
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2123
The `X-GNOME-Bugzilla-*` entries were for use by bug-buddy, a GNOME 2
technology that's been gone for over a decade. These entries are
obsolete and can be removed from all desktop files.
The `X-GNOME-Settings-Panel` entry is also obsolete as far as I can
tell and only these panels had it in their desktop file: notifications,
sharing, sound and user-accounts. These entries can also be removed.
After removing the `X-GNOME-Bugzilla-*` entries, the desktop files have
no more variables in them. The meson `configure_file` step is therefor
pointless—there are no variables to configure. As such the
`*.desktop.in.in` files are renamed to `*.desktop.in` to reflect this
and `meson.build` files are modified to remove `configure_file` step.
This should significantly simplify these panels, by not forcing
them to override GObject.constructed all the time. Most panels
were quite straightfoward.
Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0.
panels/applications/meson.build:10:5: ERROR: Function does not take positional arguments.
panels/background/meson.build:10:5: ERROR: Function does not take positional arguments.
panels/camera/meson.build:10:5: ERROR: Function does not take positional arguments.
[...]