From 26e0eff9308f8ca975e2f3d7c679fd756c7c1ee0 Mon Sep 17 00:00:00 2001 From: Tamaranch <138-Tamaranch@users.noreply.gitlab.xfce.org> Date: Fri, 22 May 2020 16:32:18 +0200 Subject: [PATCH] Do not open an empty document when encoding failed --- mousepad/main.c | 7 ++++--- mousepad/mousepad-application.c | 22 +++++++--------------- mousepad/mousepad-application.h | 2 +- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/mousepad/main.c b/mousepad/main.c index 97ff07f..9199687 100644 --- a/mousepad/main.c +++ b/mousepad/main.c @@ -57,6 +57,7 @@ main (gint argc, gchar **argv) MousepadApplication *application; GError *error = NULL; gchar *working_directory; + gboolean succeed; /* bind the text domain to the locale directory */ bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); @@ -179,14 +180,14 @@ main (gint argc, gchar **argv) application = mousepad_application_get (); /* open an empty window (with an empty document or the files) */ - mousepad_application_new_window_with_files (application, NULL, working_directory, filenames); + succeed = mousepad_application_new_window_with_files (application, NULL, working_directory, filenames); /* cleanup */ g_free (working_directory); g_strfreev (filenames); /* do not enter the main loop, unless we have atleast one window */ - if (G_LIKELY (mousepad_application_has_windows (application))) + if (G_LIKELY (mousepad_application_has_windows (application)) && succeed == TRUE) { #ifdef HAVE_DBUS /* register with dbus */ @@ -203,5 +204,5 @@ main (gint argc, gchar **argv) /* release application reference */ g_object_unref (G_OBJECT (application)); - return EXIT_SUCCESS; + return succeed ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/mousepad/mousepad-application.c b/mousepad/mousepad-application.c index 5d4dc21..a95e7f0 100644 --- a/mousepad/mousepad-application.c +++ b/mousepad/mousepad-application.c @@ -270,7 +270,7 @@ mousepad_application_new_window (MousepadWindow *existing, -void +gboolean mousepad_application_new_window_with_files (MousepadApplication *application, GdkScreen *screen, const gchar *working_directory, @@ -278,11 +278,10 @@ mousepad_application_new_window_with_files (MousepadApplication *application, { GtkWidget *window; gboolean succeed = FALSE; - MousepadDocument *document; GtkWindowGroup *window_group; - g_return_if_fail (MOUSEPAD_IS_APPLICATION (application)); - g_return_if_fail (screen == NULL || GDK_IS_SCREEN (screen)); + g_return_val_if_fail (MOUSEPAD_IS_APPLICATION (application), succeed); + g_return_val_if_fail (screen == NULL || GDK_IS_SCREEN (screen), succeed); /* create a new window (signals added and already hooked up) */ window = mousepad_application_create_window (application); @@ -299,18 +298,11 @@ mousepad_application_new_window_with_files (MousepadApplication *application, if (working_directory && filenames && g_strv_length (filenames)) succeed = mousepad_window_open_files (MOUSEPAD_WINDOW (window), working_directory, filenames); - /* open an empty document */ - if (succeed == FALSE) - { - /* create a new document */ - document = mousepad_document_new (); - - /* add the document to the new window */ - mousepad_window_add (MOUSEPAD_WINDOW (window), document); - } - /* show the window */ - gtk_widget_show (window); + if (succeed == TRUE) + gtk_widget_show (window); + + return succeed; } diff --git a/mousepad/mousepad-application.h b/mousepad/mousepad-application.h index 3acffc1..61dddee 100644 --- a/mousepad/mousepad-application.h +++ b/mousepad/mousepad-application.h @@ -40,7 +40,7 @@ gboolean mousepad_application_has_windows (MousepadApplic void mousepad_application_take_window (MousepadApplication *application, GtkWindow *window); -void mousepad_application_new_window_with_files (MousepadApplication *application, +gboolean mousepad_application_new_window_with_files (MousepadApplication *application, GdkScreen *screen, const gchar *working_directory, gchar **filenames); -- 2.26.2