Mutter supports the 'Above_Tab' fake keysym that refers to the key
that is physically located above the tab key. It is used in the default
shortcut of the "Switch windows of an application" action.
As gtk_accelerator_parse() doesn't recognize the keysym, we display
the shortcut incorrectly as "disabled", and it is not taken into account
for conflict resolution.
Address this by translating binding that contains the 'Above_Tab' string
to bindings where the string is replaced with each possible keysym that
corresponds to the fixed keycode of KEY_GRAVE + 8.
https://gitlab.gnome.org/GNOME/gnome-control-center/issues/581
This is useful for 2 cases:
- Tablet-input-driven setups where it makes sense to be able to quickly
reach other monitors with the tablet.
- (Hopefully a minority) Cases where our display mapping heuristics go
wrong and tablet gets assigned to a wrong monitor.
Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/issues/239
Previously, when you open the connection editor dialog for each
connection, no matter whether you've made any changes or not, the
"Apply" button became sensetive, which is not what we expected.
Fix that by removing the unnecessary call to password_storage_changed()
while constructing the security tab.
Due to an API bug in GNOME Online Accounts, the asynchronous
goa_provider_get_all method doesn't accept a GCancellable argument. This makes
it difficult to cancel an ongoing call when the CcGoaPanel gets destroyed.
This was hacked around by taking a reference on the panel for the duration of
the call. Instead of cancelling a pending call on destruction, it would keep the
panel alive until the call was over.
The hack does not consider the case get_all_providers_cb is called while the
panel is still being initialized. E.g. this happen when create the panel passing
the paramenters "add <provider>" because the constuct properties are set just
after cc_goa_panel_init returns and because goa_provider_add_account will result
in a call to g_main_context_iterate (caused by gtk_dialog_run).
In order to work around this we can call goa_provider_get_all in _constructed()
after all construct properties have been set.
https://gitlab.gnome.org/GNOME/gnome-control-center/issues/401
This factorizes the row creation a bit and normalizes the margins and
spacing, reducing the required width. This also makes labels like row
titles and descriptions ellipsizable so the rows can reach narrower
widths.
Since 9d612ff1c7 this is required,
otherwise we never set up the GtkAdjustment and so the scales don't
display any values or widget to make adjustments, meaning they can't be
used.
Also call `notify_volume_cb()` from `update_ranges()` to initialise the
adjustment, since when we set the mixer control we now might not have
set the value.
Closes#652