diff options
-rw-r--r-- | gnome-initial-setup/pages/keyboard/cc-input-chooser.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c index d2bd984..6bf39ed 100644 --- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c +++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c @@ -585,6 +585,7 @@ static void update_ibus_active_sources (CcInputChooser *chooser) { CcInputChooserPrivate *priv; + gboolean invalidate = FALSE; IBusEngineDesc *engine_desc; const gchar *type; const gchar *id; @@ -611,9 +612,16 @@ update_ibus_active_sources (CcInputChooser *chooser) if (engine_desc) { name = engine_get_display_name (engine_desc); gtk_label_set_text (GTK_LABEL (row->label), name); - g_free (name); + g_clear_pointer (&row->name, g_free); + row->name = g_steal_pointer (&name); + invalidate = TRUE; } } + + if (invalidate) { + gtk_list_box_invalidate_sort (GTK_LIST_BOX (priv->input_list)); + gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->input_list)); + } } static void |