diff --git a/gui/ocarina.cpp b/gui/ocarina.cpp index c394aec1..1ee71308 100644 --- a/gui/ocarina.cpp +++ b/gui/ocarina.cpp @@ -75,8 +75,12 @@ int main(int argc, char **argv) window = Glib :: wrap(GTK_WINDOW(gui_builder_widget("o_window")), false); ocarina_app->signal_window_removed().connect(sigc::ptr_fun(on_window_removed)); ocarina_app->run(*window, argc, argv); + core_deinit(); cleanup_tabs(); + gui_window_deinit(); + gui_settings_deinit(); + //gui_builder_deinit(); return 0; } diff --git a/gui/window.c b/gui/window.c index 18acf1bc..cd22ad1d 100644 --- a/gui/window.c +++ b/gui/window.c @@ -15,3 +15,8 @@ void gui_window_init(const gchar *icon) g_free(title); } + +void gui_window_deinit() +{ + gtk_widget_destroy(gui_builder_widget("o_window")); +} diff --git a/include/gui/window.h b/include/gui/window.h index 3d3ef879..223eddcf 100644 --- a/include/gui/window.h +++ b/include/gui/window.h @@ -7,4 +7,7 @@ /* Called to initialize the main window. */ void gui_window_init(const gchar *); +/* Called to deinitialize the main window. */ +void gui_window_deinit(); + #endif /* OCARINA_GUI_WINDOW_H */ diff --git a/tests/gui/audio.c b/tests/gui/audio.c index 99f3ffd4..77770762 100644 --- a/tests/gui/audio.c +++ b/tests/gui/audio.c @@ -9,6 +9,7 @@ #include #include #include +#include #include struct core_init_data init_data = { @@ -129,6 +130,7 @@ static void test_audio() test_equal(audio_cur_state(), GST_STATE_PAUSED); test_equal(audio_position(), 0); + gui_window_deinit(); gui_builder_deinit(); } diff --git a/tests/gui/window.c b/tests/gui/window.c index e1fe7f08..41c54fc0 100644 --- a/tests/gui/window.c +++ b/tests/gui/window.c @@ -22,6 +22,7 @@ static void test_window() window = GTK_WINDOW(gui_builder_widget("o_window")); test_equal(gtk_window_get_title(window), "Ocarina " CONFIG_VERSION); + gui_window_deinit(); gui_builder_deinit(); }