From 2c658ae4fb9d24b6c63dce20af1c244d25862357 Mon Sep 17 00:00:00 2001 From: Andrzej Hunt Date: Tue, 24 Jun 2014 21:13:42 +0100 Subject: LOK DocView: clean up document on exit. Otherwise lock files etc. aren't cleaned up, which isn't particularly nice should when then opening the file in normal LibreOffice. Change-Id: I822b6fb582473674371a4c1d403d5a05adb7ea6b --- libreofficekit/source/gtk/lokdocview.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libreofficekit') diff --git a/libreofficekit/source/gtk/lokdocview.c b/libreofficekit/source/gtk/lokdocview.c index 99f2b1592ce3..bf86679a7abb 100644 --- a/libreofficekit/source/gtk/lokdocview.c +++ b/libreofficekit/source/gtk/lokdocview.c @@ -17,6 +17,15 @@ static void lok_docview_class_init( LOKDocViewClass* pClass ); static void lok_docview_init( LOKDocView* pDocView ); +// We specifically need to destroy the document when closing in order to ensure +// that lock files etc. are cleaned up. +void lcl_onDestroy( LOKDocView* pDocView, gpointer pData ) +{ + (void) pData; + pDocView->pDocument->pClass->destroy( pDocView->pDocument ); + pDocView->pDocument = 0; +} + SAL_DLLPUBLIC_EXPORT guint lok_docview_get_type() { static guint lok_docview_type = 0; @@ -70,6 +79,9 @@ static void lok_docview_init( LOKDocView* pDocView ) pDocView->pDocument = 0; pDocView->fZoom = 1; + + gtk_signal_connect( GTK_OBJECT(pDocView), "destroy", + GTK_SIGNAL_FUNC(lcl_onDestroy), NULL ); } SAL_DLLPUBLIC_EXPORT GtkWidget* lok_docview_new( LibreOfficeKit* pOffice ) -- cgit