fix bug 4239, 'Preferences: Text Options Header Display modal is not modal' (sic)
[claws.git] / src / crash.c
index a48401271f679793d40401fb8274f083d02ddbab..52dc9f93810012417a5b0eaa848e6407ee92d63f 100644 (file)
@@ -48,7 +48,7 @@
 #include "main.h"
 #include "claws.h"
 #include "crash.h"
-#include "utils.h"
+#include "file-utils.h"
 #include "filesel.h"
 #include "version.h"
 #include "prefs_common.h"
@@ -185,6 +185,7 @@ static GtkWidget *crash_dialog_show(const gchar *text, const gchar *debug_output
        gtk_container_set_border_width(GTK_CONTAINER(window1), 5);
        gtk_window_set_title(GTK_WINDOW(window1), _("Claws Mail has crashed"));
        gtk_window_set_position(GTK_WINDOW(window1), GTK_WIN_POS_CENTER);
+       gtk_window_set_type_hint(GTK_WINDOW(window1), GDK_WINDOW_TYPE_HINT_DIALOG);
        gtk_window_set_modal(GTK_WINDOW(window1), TRUE);
        gtk_window_set_default_size(GTK_WINDOW(window1), 460, 272);
 
@@ -251,17 +252,17 @@ static GtkWidget *crash_dialog_show(const gchar *text, const gchar *debug_output
        button3 = gtk_button_new_with_label(_("Close"));
        gtk_widget_show(button3);
        gtk_container_add(GTK_CONTAINER(hbuttonbox4), button3);
-       gtkut_widget_set_can_default(button3, TRUE);
+       gtk_widget_set_can_default(button3, TRUE);
 
        button4 = gtk_button_new_with_label(_("Save..."));
        gtk_widget_show(button4);
        gtk_container_add(GTK_CONTAINER(hbuttonbox4), button4);
-       gtkut_widget_set_can_default(button4, TRUE);
+       gtk_widget_set_can_default(button4, TRUE);
 
        button5 = gtk_button_new_with_label(_("Create bug report"));
        gtk_widget_show(button5);
        gtk_container_add(GTK_CONTAINER(hbuttonbox4), button5);
-       gtkut_widget_set_can_default(button5, TRUE);
+       gtk_widget_set_can_default(button5, TRUE);
        
        g_signal_connect(G_OBJECT(window1), "delete_event",
                         G_CALLBACK(gtk_main_quit), NULL);
@@ -290,7 +291,7 @@ static void crash_create_debugger_file(void)
 {
        gchar *filespec = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, DEBUGGERRC, NULL);
        
-       str_write_to_file(DEBUG_SCRIPT, filespec);
+       str_write_to_file(DEBUG_SCRIPT, filespec, TRUE);
        g_free(filespec);
 }
 
@@ -310,7 +311,7 @@ static void crash_save_crash_log(GtkButton *button, const gchar *text)
        strftime(buf, sizeof buf, "claws-crash-log-%Y-%m-%d-%H-%M-%S.txt", lt);
        if (NULL != (filename = filesel_select_file_save(_("Save crash information"), buf))
        &&  *filename)
-               str_write_to_file(text, filename);
+               str_write_to_file(text, filename, TRUE);
        g_free(filename);       
 }
 
@@ -369,7 +370,7 @@ static void crash_debug(unsigned long crash_pid,
                        perror("dup");
                close(choutput[0]);
                if (-1 == execvp("gdb", argp)) 
-                       g_print("error execvp\n");
+                       perror("execvp");
        } else {
                char buf[100];
                int r;
@@ -481,7 +482,7 @@ static const gchar *get_operating_system(void)
 
 /*!
  *\brief       see if the crash dialog is allowed (because some
- *             developers may prefer to run claws-mail under gdb...)
+ *             developers may prefer to run Claws Mail under gdb...)
  */
 static gboolean is_crash_dialog_allowed(void)
 {
@@ -547,6 +548,7 @@ static void crash_handler(int sig)
                if (setuid(getuid()) != 0 )
                        perror("setuid");
                execvp(argv0, args);
+               perror("execvp");
        } else {
                waitpid(pid, NULL, 0);
                crash_cleanup_exit();