This was broken in a86cf1eca2 (3.32) when the input options dialog was converted
into a GtkPopover. Previously two GSettings objects were used, with one set to
'delay-apply' mode. The input source option didn't apply the changes.
The 'delay-apply' mode is from the original commit d3852fc831, however code was
simplified in b3199dd to only set one setting. This meant that the delay is no
longer necessary.
Fixes#440
These are the documented guidelines for when communicating
and interacting with humans. Not following the documented
guidelines means the comment will be removed, or the ticket
will be closed.
[skip ci]
Set to non-translatable as it is just a placeholder.
This change has been requested by Benjamin Berg(@bberg).
Issue has not been created for this but it was stated in issue#397
This allows the window to be folded to show either the sidebar or the
panel when not enough space is available.
This reverts commit 2854669f5c8280a32d0b5fa6c5399cc391ef06f3.
Put the widget's content into a HdyColumn, itself into a
GtkScrolledWindow. This allows the panel to reach narrower sizes.
This deliberately doesn't adapt the indentation of the contained widget
to help this commit to be more readable and easier to review, it will be
adapted in the next commit.
This will help ensuring the shell's leaflets fold consistently for all
panels by setting a more reasonable minimum size constraint for the
right panel, so that more panels can meet it.
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.
The instructions label says:
Press Esc to cancel or Backspace to reset the keyboard shortcut.
but the Backspace key set the shortcut to be empty, and disables the
feature. Reset is achieved clicking the button to the right handside of
the shortcut in the main window, and is only visible when the shortcut
isn't set to the default value.
The old code would not sync the state when the page was loaded. Also,
due to how the code was written, it would not update the switch state if
the underlying setting was changed in some other way.
Fix this by connecting the setting with the "state" of the switches.
When the switches "active" property is changed, update the underlying
setting and ensure the mutually exclusive switch is turned off when
needed.
Fixes#398
This prevents a single bluetooth connection to be shortened to the name
"Bluetooth", which means we end up with one "Bluetooth" device in the
"Bluetooth" section. Rather, always use the long name of the bluetooth
device so that the user knows what they are connecting to.
Historically, the bluetooth section has been the dumping ground for any
device we don't handle in another way. It has had the "Bluetooth" title
for a long time now though, and many of the devices that end up in there
are actually not useful in the GNOME context.
There are some people complaining that we should support these devices
properly, but the status quo does not help any one either really, so
lets remove them entirely for now.
Obsoletes: !203Fixes: #190
Touches: #167
In some cases, the network connection UI uses pango markup to denote the
SSID name inside a connection name. However, if the SSID matched the
connection name, then we would end up setting the SSID as pango markup
without it being escaped.
Fix this by escaping the SSID before setting it as markup.
Fixes: #435
A report in Red Hat bugzilla [1] shows for some reason the country is set to
NULL and this causes a crash when comparing against search terms. The solution
is to handle the NULL without crashing.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1685251
In almost all cases, the configuration will be "valid" in the sense that
g-c-c can represent it in the UI. However, there are cases like
mirroring setups with three monitors that we do not allow.
In case that the user has such a configuration, ensure that the
configuration we represent is actually valid according to our
expectations. This should not affect normal use cases, but allows users
to recover again if the configuration is broken for some reason.
Fixes#383
When the user has more than two monitors, then they can disable each
monitor separately. If the user creates an invalid configuration because
they disabled the last monitor, then enable a different one immediately.
The new logic selects a single configuration type rather than detecting
which types can be considered valid. This simplifies the UI rebuilding
somewhat, but also changes some internal behaviour. We will now always
be in the correct mode internally, even if the UI may not represent this
change (i.e. with more than two monitors it always looks the same).
We should show unusable monitors in the monitor selection drop-down
list. So always add them to the combobox and add the code to make the
switch to enable them insensitive.
We should only enforce single mode, when we have exactly two monitors
and the two button UI is used to switch between them in single mode.
Move the code to ensure the single configuration into the relevant
callback handler, rather than trying to solve this globally.
We need to also set rebuilding while updating some other UI elements.
Make it into a counter to allow for recursive setting.
Note that additional checks for rebuilding will be added in later
commits.
It generally makes more sense to reset the resolution of a monitor after
we switch configuration types. The main case where this is relevant is
switching from a mirror configuration (CLONE) to either join or single.
In this case, higher resolutions for monitors may become available.
Note that this might be annoying to some users, because there may be
monitors reporting a lower "preferred" resolution than the highest
supported resolution. There is little we can do though, as always
selecting the highest resolution doesn't seem like a much better
approach.
If no monitors are enabled, then the variant would end up with an
invalid variant type, causing a crash later on. This case only happened
due to other bugs (i.e. in principle we should never send a
configuration without any monitors to the server).
Prevent the serialization error by specifying the correct type for the
builder, therefore potentially preventing a crash in such a corner case.
When enabling the first monitor, we need to select it as primary as we
otherwise end up without a primary monitor (rendering the configuration
invalid). "Unsetting" the NULL primary monitor effectively causes the
first and only available monitor to become the primary, while not doing
anything if we have a primary monitor.