libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
New commits: commit 538ea31c992acb9d47ffd783543e50e149272aac Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jul 28 09:52:25 2016 +0200 gtktiledviewer: quit after the last view is destroyed To allow debugging crash-on-exit problems. Change-Id: Ie54a8391e721c3ba8034b4618dd30733bac97a27 Reviewed-on: https://gerrit.libreoffice.org/27605 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Jenkins <c...@libreoffice.org> diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index 58139a5..37cf7e2 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -1210,13 +1210,28 @@ static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpo gtk_widget_hide(rWindow.m_pProgressBar); } +/** + * Wrapper around gtk_widget_destroy() that quits when the last tiled window is + * destroyed. + */ +static void destroyWindow(GtkWidget* pWidget) +{ + gtk_widget_destroy(pWidget); + auto it = g_aWindows.find(pWidget); + if (it != g_aWindows.end()) + g_aWindows.erase(it); + + if (g_aWindows.empty()) + gtk_main_quit(); +} + /// Creates the GtkWindow that has main widget as children and registers it in the window map. static GtkWidget* createWindow(TiledWindow& rWindow) { GtkWidget *pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(pWindow), "LibreOfficeKit GTK Tiled Viewer"); gtk_window_set_default_size(GTK_WINDOW(pWindow), 1024, 768); - g_signal_connect(pWindow, "destroy", G_CALLBACK(gtk_widget_destroy), pWindow); + g_signal_connect(pWindow, "destroy", G_CALLBACK(destroyWindow), pWindow); rWindow.m_pVBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(pWindow), rWindow.m_pVBox); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits