There was some code left around for dealing with a filter model,
but we don't have the active input sources in a filtered list
anymore. This was leading to crashes when removing or rearranging
input sources.
When modifying the input sources list the currently active source's
index might change. We must change the current setting accordingly to
keep it active.
https://bugzilla.gnome.org/show_bug.cgi?id=662489
Unref the GSettings object and build the GnomeXkbInfo only
once. There's no need to free and keep rebuilding the latter since it
doesn't keep any state and is a bit expensive to build.
https://bugzilla.gnome.org/show_bug.cgi?id=662489
If IBus is unavailable to get the input source's display name,
just show the ID instead, and populate the display name when we get
a change (eg. when fetching the input sources from IBus is done).
For XKB input sources the settings button remains unsensitive. For
IBus sources we make it sensitive and launch the engine's setup tool
on clicked if there is one.
https://bugzilla.gnome.org/show_bug.cgi?id=662489
This makes the dialog return when the user presses Enter on the filter
entry and prevents the GtkTreeView search popup from being used since
we already handle searching on that tree view.
https://bugzilla.gnome.org/show_bug.cgi?id=662489