static void row_activated (GtkListBox *box, GtkListBoxRow *row, GtkWidget *chooser) { CcInputChooserPrivate *priv = GET_PRIVATE (chooser); gpointer data; if (!row) return; if (row == priv->more_row) { show_more (chooser); return; } data = g_object_get_data (G_OBJECT (row), "back"); if (data) { show_locale_rows (chooser); return; } data = g_object_get_data (G_OBJECT (row), "name"); if (data) { if (gtk_widget_is_sensitive (priv->add_button)) gtk_dialog_response (GTK_DIALOG (chooser), gtk_dialog_get_response_for_widget (GTK_DIALOG (chooser), priv->add_button)); return; } data = g_object_get_data (G_OBJECT (row), "locale-info"); if (data) { show_input_sources_for_locale (chooser, (LocaleInfo *) data); return; } }
static void row_activated (GtkListBox *box, GtkListBoxRow *row, GtkWidget *chooser) { CcInputChooserPrivate *priv = GET_PRIVATE (chooser); gpointer data; GtkWidget *child; if (!row) return; child = gtk_bin_get_child (GTK_BIN (row)); if (child == priv->more_item) { show_more (chooser); return; } data = g_object_get_data (G_OBJECT (child), "back"); if (data) { show_locale_widgets (chooser); return; } data = g_object_get_data (G_OBJECT (child), "name"); if (data) { /* It's an input source, we just want to select it */ return; } data = g_object_get_data (G_OBJECT (child), "locale-info"); if (data) { show_input_sources_for_locale (chooser, (LocaleInfo *) data); return; } }