Note that this fix will not automatically fix translations, which will
need to add soft-hyphens (U+00AD) to their translations themselves, and
will not fix larger fonts for which the split up syllables end up
being bigger than the maximum text width.
It's the best we can do without redesigning the Settings shell, which is
already something planned.
https://bugzilla.gnome.org/show_bug.cgi?id=647087#c13
If the GCancellable is cancelled by the finalize() function, the
callback will still be called potentially with an instance of the
panel that's not valid anymore.
To avoid crashing in that case, only access the priv pointer
when we have no error.
https://bugzilla.gnome.org/show_bug.cgi?id=761846
The formats (or 'region') setting might be unset meaning that it's the
same as the language since that's what LC_TIME et al default to when
unset.
We already handle this for the user setting but for the system setting
we're losing that semantic when getting it from localed since we don't
allow priv->system_region to remain unset. This means that when users
change the system language, the system formats will be explicitly set
to the previous value of the system language instead of remaining
unset and thus follow the new value for the system language.
This isn't that bad on multi user systems where we display system
settings separately from user settings, but on single user systems we
change the system values to match the user values which, due to the
above mentioned semantic difference regarding the region setting,
means that when changing the language, the (unset) region will be
displayed as the same as the language but the system region will be
explicitly set to the previous language.
Fix this by making the system region have the same semantic as the
user's, i.e. allow it to remain unset until explicitly set by the
user.
https://bugzilla.gnome.org/show_bug.cgi?id=755648
This is a pre-requisite for using a header bar.
GtkDialog:use-header-bar is a construct-only property, and has no
effect when set from the XML. Therefore, the only option is to turn
the widget into a template and set use-header-bar from C.
There should be no behavioral changes due to this patch.
Bump required GLib version for the G_DECLARE_FINAL_TYPE macro.
https://bugzilla.gnome.org/show_bug.cgi?id=757516
Going back when the back row just gets selected breaks keyboard
navigation. This behavior got introduced by mistake in commit
f28e06a4. Instead, let's just do the add button sensitiveness logic
here. The back row still works when activated.
https://bugzilla.gnome.org/show_bug.cgi?id=754524
For newly created user accounts, AccountsService won't have the
language property set. Instead of defaulting to en_US in that case,
let's fallback to the current locale.
https://bugzilla.gnome.org/show_bug.cgi?id=753828
On systems that have only a few locales installed we might end up
starting with an awkwardly small height. To avoid that we can set our
initial height to be the same as the main window.
https://bugzilla.gnome.org/show_bug.cgi?id=753537
While filtering we're adding all the input source rows to the
GtkListBox. This is a performance issue since GtkListBox doesn't
really cope with a big number of rows.
Instead, we'll filter the locale rows in a way such that we'll show a
locale row for which any input source name matches. From this filtered
locales view, users will still need to activate a locale row to get to
the input source rows view.
https://bugzilla.gnome.org/show_bug.cgi?id=752383
This makes the dialog easier to use via keyboard navigation since
otherwise we would just dismiss the dialog with the current selection
on enter when the user actually intended to change the selection.
https://bugzilla.gnome.org/show_bug.cgi?id=752001
The language input chooser is being created and destroyed every time
it is opened and closed. This is noticeably slow and is hardly
necessary as the values it contains should not change.
To fix this, these changes reuse the same instance of the input chooser
(by hiding and showing it) instead of renewing it.
The input chooser is also now shown using gtk_dialog_run to avoid having
it destroyed from the default delete event.
These changes prevent warnings when unreferencing the default input
source, locale and back rows which are never instanced by some locales
(and thus null).
The language input chooser is being leaked. The reason for the leak
is a "circular reference": the input chooser keeps a GtkBuilder
instance that gets destroyed when the chooser is, itself, destroyed.
However, the input chooser is never destroyed because the GtkBuilder
instance keeps a reference to it.
These changes dismiss the GtkBuilder once it is no longer needed in the
input chooser which fixes the leak.
The first input source gets activated by default when users log in but
we don't currently allow users to set this (other than the awkward
remove all input sources and add them again in the right order).
Allowing user re-ordering of the input source list nicely allows users
to get the default input source they want.
https://bugzilla.gnome.org/show_bug.cgi?id=743400
Currently it looks a bit unpolished that the add/remove buttons on the
other side of the toolbar look linked while this pair doesn't. Note
that the input source settings button isn't always visible but in that
case the layout button will still show up correctly as non-linked.
https://bugzilla.gnome.org/show_bug.cgi?id=743400
When iterating locales in the format chooser,
gnome_get_country_from_locale() is called for each of them to build the
locale label for the list row.
The function creating the label doesn't take into account that
gnome_get_country_from_locale() can return NULL, in which case it will
both:
- display an empty row in the list
- crash when later trying to find a word in a NULL string with strstr()
inside match_all()
Just avoid creating a widget in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=742639
Since we can't export IBus sources through the localed API we
shouldn't even allow users to choose them.
This allows us to stop having to show an apologising dialog which
makes us look a bit bad and was using deprecated gtk+ API that we're
trying to get rid of. Instead, we show the same information up front,
in the input chooser.
https://bugzilla.gnome.org/show_bug.cgi?id=740986
gnome_parse_locale() can return an empty country_code for some locales,
which we are not taking into account when building the simple_locale
string.
https://bugzilla.gnome.org/show_bug.cgi?id=738963
The notification is wider then window for some languages (e.g.
France). This patch allows wrapping, limits chars and changes
margin as a result of discussion on #gnome-design.
https://bugzilla.gnome.org/show_bug.cgi?id=703392
Selecting and pressing the Add button continues to work but this
should streamline the the input chooser dialog for mouse users by
making it possible to add by double clicking a row.
https://bugzilla.gnome.org/show_bug.cgi?id=732720
GtkListBox doesn't implement GtkScrollable so it needs to be added to
a GtkViewport. Instead of having to do this in all .ui files, add a
new helper function to setup the widget tree correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=732175
This is deprecated in newer automake versions, and this causes warnings
with automake 1.14:
panels/printers/Makefile.am:3: warning: 'INCLUDES' is the old name for
AM_CPPFLAGS' (or '*_CPPFLAGS')
https://bugzilla.gnome.org/show_bug.cgi?id=732189
Missing org.freedesktop.locale1 means priv->permission will not be set
and will trigger a segfault when used by set_login_button_visibility().
Unconditionally not display the Login button if localed is not available
since it will be useless anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=723550
If the settings backends fail to give us valid values, show the
current environment instead of "None" since we do know which language
is actually being used.
https://bugzilla.gnome.org/show_bug.cgi?id=695535