diff -ur '--exclude=*.mk' '--exclude=mandelbulber' mandelbulber0.94/src/callbacks.cpp mandelbulber0.94-quit_fix/src/callbacks.cpp --- mandelbulber0.94/src/callbacks.cpp 2010-10-10 11:47:11.000000000 +0100 +++ mandelbulber0.94-quit_fix/src/callbacks.cpp 2010-10-19 11:19:10.000000000 +0100 @@ -181,11 +181,11 @@ } //----------- close program -gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) +gboolean StopRenderingAndQuit(GtkWidget *widget, GdkEvent *event, gpointer data) { - programClosed = true; - printf("Rendering terminated\n"); - return FALSE; + StopRendering(widget, data); + gtk_main_quit(); + printf("Quitting\n"); } gboolean WindowReconfigured(GtkWindow *window, GdkEvent *event, gpointer data) @@ -261,11 +261,6 @@ return true; } -//------------- destroy program -void destroy(GtkWidget *widget, gpointer data) -{ - gtk_main_quit(); -} void StartRendering(GtkWidget *widget, gpointer data) { diff -ur '--exclude=*.mk' '--exclude=mandelbulber' mandelbulber0.94/src/callbacks.h mandelbulber0.94-quit_fix/src/callbacks.h --- mandelbulber0.94/src/callbacks.h 2010-10-09 19:54:57.000000000 +0100 +++ mandelbulber0.94-quit_fix/src/callbacks.h 2010-10-19 11:12:32.000000000 +0100 @@ -17,7 +17,7 @@ gboolean CallerTimerLoop(GtkWidget *widget); gboolean motion_notify_event(GtkWidget *widget, GdkEventMotion *event); gboolean pressed_button_on_image(GtkWidget *widget, GdkEventButton *event); -gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data); +gboolean StopRenderingAndQuit(GtkWidget *widget, GdkEvent *event, gpointer data); gboolean WindowReconfigured(GtkWindow *window, GdkEvent *event, gpointer data); gboolean on_darea_expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data); gboolean on_dareaPalette_expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data); @@ -33,7 +33,6 @@ void PressedSaveImagePNG16Alpha(GtkWidget *widget, gpointer data); void PressedOkDialogFiles(GtkWidget *widget, gpointer data); void PressedCancelDialogFiles(GtkWidget *widget, gpointer data); -void destroy(GtkWidget *widget, gpointer data); void PressedNavigatorUp(GtkWidget *widget, gpointer data); void PressedNavigatorDown(GtkWidget *widget, gpointer data); void PressedNavigatorLeft(GtkWidget *widget, gpointer data); diff -ur '--exclude=*.mk' '--exclude=mandelbulber' mandelbulber0.94/src/interface.cpp mandelbulber0.94-quit_fix/src/interface.cpp --- mandelbulber0.94/src/interface.cpp 2010-10-03 18:44:32.000000000 +0100 +++ mandelbulber0.94-quit_fix/src/interface.cpp 2010-10-19 11:20:45.000000000 +0100 @@ -839,8 +839,7 @@ //------------- glowne okno renderowania window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window2), "Mandelbulb Render Window"); - g_signal_connect(G_OBJECT(window2), "destroy", G_CALLBACK(gtk_main_quit), NULL); - g_signal_connect(G_OBJECT(window2), "delete_event", G_CALLBACK(gtk_main_quit), NULL); + g_signal_connect(G_OBJECT(window2), "delete_event", G_CALLBACK(StopRenderingAndQuit), NULL); gtk_widget_add_events(GTK_WIDGET(window2), GDK_CONFIGURE); g_signal_connect(G_OBJECT(window2), "configure-event", G_CALLBACK(WindowReconfigured), NULL); @@ -885,8 +884,7 @@ window_histogram = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window_histogram), "left - number of iterations (max 64) / right - number of steps (max. 1000)"); - g_signal_connect(G_OBJECT(window_histogram), "destroy", G_CALLBACK(gtk_main_quit), NULL); - g_signal_connect(G_OBJECT(window_histogram), "delete_event", G_CALLBACK(gtk_main_quit), NULL); + g_signal_connect(G_OBJECT(window_histogram), "delete_event", G_CALLBACK(StopRenderingAndQuit), NULL); //glowny box w oknie GtkWidget *box2 = gtk_vbox_new(FALSE, 0); @@ -905,8 +903,7 @@ window_interface = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window_interface), "Mandelbulber (default.fract)"); gtk_container_set_border_width(GTK_CONTAINER(window_interface), 10); - g_signal_connect(G_OBJECT(window_interface), "delete_event", G_CALLBACK(delete_event), NULL); - g_signal_connect(G_OBJECT(window_interface), "destroy", G_CALLBACK(destroy), NULL); + g_signal_connect(G_OBJECT(window_interface), "delete_event", G_CALLBACK(StopRenderingAndQuit), NULL); //tabs Interface.tabs = gtk_notebook_new();