static void gw_application_activate (GApplication *application) { GwApplicationPrivate *priv; GwSearchWindow *searchwindow; GwVocabularyWindow *vocabularywindow; GwSettingsWindow *settingswindow; GwDictionaryList *dictionarylist; priv = GW_APPLICATION (application)->priv; dictionarylist = gw_application_get_installed_dictionarylist (GW_APPLICATION (application)); if (priv->arg_new_vocabulary_window_switch) { vocabularywindow = GW_VOCABULARYWINDOW (gw_vocabularywindow_new (GTK_APPLICATION (application))); gtk_widget_show (GTK_WIDGET (vocabularywindow)); return; } else { searchwindow = GW_SEARCHWINDOW (gw_searchwindow_new (GTK_APPLICATION (application))); gtk_widget_show (GTK_WIDGET (searchwindow)); if (lw_dictionarylist_get_total (LW_DICTIONARYLIST (dictionarylist)) == 0) { settingswindow = GW_SETTINGSWINDOW (gw_settingswindow_new (GTK_APPLICATION (application))); gtk_window_set_transient_for (GTK_WINDOW (settingswindow), GTK_WINDOW (searchwindow)); gtk_widget_show (GTK_WIDGET (settingswindow)); } return; } }
void gw_application_open_settingswindow_cb (GSimpleAction *action, GVariant *parameter, gpointer data) { //Declarations GwApplication *application; GwSearchWindow *searchwindow; GtkWindow *settingswindow; GList *link; //Initializations searchwindow = GW_SEARCHWINDOW (gw_application_get_last_focused_searchwindow (GW_APPLICATION (data))); application = gw_window_get_application (GW_WINDOW (searchwindow)); link = gtk_application_get_windows (GTK_APPLICATION (application)); while (link != NULL && !GW_IS_SETTINGSWINDOW (link->data)) link = link->next; if (link != NULL) { settingswindow = GTK_WINDOW (link->data); gtk_window_set_transient_for (GTK_WINDOW (settingswindow), GTK_WINDOW (searchwindow)); gtk_window_present (GTK_WINDOW (settingswindow)); } else { settingswindow = gw_settingswindow_new (GTK_APPLICATION (application)); gtk_window_set_transient_for (GTK_WINDOW (settingswindow), GTK_WINDOW (searchwindow)); gtk_widget_show (GTK_WIDGET (settingswindow)); } }