static void new_window_activated (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GeditApp *app; GeditWindow *window; app = GEDIT_APP (user_data); window = gedit_app_create_window (app, NULL); gedit_debug_message (DEBUG_APP, "Show window"); gtk_widget_show (GTK_WIDGET (window)); gedit_debug_message (DEBUG_APP, "Create tab"); gedit_window_create_tab (window, TRUE); gtk_window_present (GTK_WINDOW (window)); }
static void gedit_main_window (void) { GSList *file_list; GeditWindow *window; GeditCommandLine *command_line; GeditApp *app; gboolean doc_created = FALSE; const gchar *geometry; app = gedit_app_get_default (); gedit_debug_message (DEBUG_APP, "Create main window"); window = gedit_app_create_window (app, NULL); command_line = gedit_command_line_get_default (); file_list = gedit_command_line_get_file_list (command_line); if (file_list != NULL) { GSList *loaded; const GeditEncoding *encoding; gint line_position; gint column_position; encoding = gedit_command_line_get_encoding (command_line); line_position = gedit_command_line_get_line_position (command_line); column_position = gedit_command_line_get_column_position (command_line); gedit_debug_message (DEBUG_APP, "Load files"); loaded = _gedit_cmd_load_files_from_prompt (window, file_list, encoding, line_position, column_position); doc_created = loaded != NULL; g_slist_free (loaded); } if (gedit_utils_can_read_from_stdin ()) { doc_created = gedit_main_load_from_stdin (window, !doc_created); } if (!doc_created || gedit_command_line_get_new_document (command_line)) { gedit_debug_message (DEBUG_APP, "Create tab"); gedit_window_create_tab (window, TRUE); } geometry = gedit_command_line_get_geometry (command_line); gedit_debug_message (DEBUG_APP, "Show window"); gtk_widget_show (GTK_WIDGET (window)); if (geometry) { gtk_window_parse_geometry (GTK_WINDOW (window), geometry); } }
static void open_files (GApplication *application, gboolean new_window, gboolean new_document, gchar *geometry, gint line_position, gint column_position, const GtkSourceEncoding *encoding, GInputStream *stdin_stream, GSList *file_list, GApplicationCommandLine *command_line) { GeditWindow *window = NULL; GeditTab *tab; gboolean doc_created = FALSE; if (!new_window) { window = get_active_window (GTK_APPLICATION (application)); } if (window == NULL) { gedit_debug_message (DEBUG_APP, "Create main window"); window = gedit_app_create_window (GEDIT_APP (application), NULL); gedit_debug_message (DEBUG_APP, "Show window"); gtk_widget_show (GTK_WIDGET (window)); } if (geometry) { gtk_window_parse_geometry (GTK_WINDOW (window), geometry); } if (stdin_stream) { gedit_debug_message (DEBUG_APP, "Load stdin"); tab = gedit_window_create_tab_from_stream (window, stdin_stream, encoding, line_position, column_position, TRUE); doc_created = tab != NULL; if (doc_created && command_line) { set_command_line_wait (GEDIT_APP (application), tab); } g_input_stream_close (stdin_stream, NULL, NULL); } if (file_list != NULL) { GSList *loaded; gedit_debug_message (DEBUG_APP, "Load files"); loaded = _gedit_cmd_load_files_from_prompt (window, file_list, encoding, line_position, column_position); doc_created = doc_created || loaded != NULL; if (command_line) { g_slist_foreach (loaded, (GFunc)set_command_line_wait_doc, GEDIT_APP (application)); } g_slist_free (loaded); } if (!doc_created || new_document) { gedit_debug_message (DEBUG_APP, "Create tab"); tab = gedit_window_create_tab (window, TRUE); if (command_line) { set_command_line_wait (GEDIT_APP (application), tab); } } gtk_window_present (GTK_WINDOW (window)); }