From 143ffe8df3ee844c4022a8b4d6e3053a8d558f11 Mon Sep 17 00:00:00 2001 From: Mihai Varga Date: Tue, 21 Jul 2015 18:49:21 +0300 Subject: [PATCH 071/398] gtktiledviewer: method for resetting all tiles [ Miklos Vajna: The point of the change is that without this, part switching in Calc does not work, as Calc does not invalidate everything after a part switch (unlike Impress), and we suppose the right fix for this is to let the clients throw away the tiles, rather than letting Calc send out invalidations, too. ] Change-Id: Id368b955c54efb87ecf3d59278ddb5cdbb2e7856 Reviewed-on: https://gerrit.libreoffice.org/17267 Reviewed-by: Miklos Vajna Tested-by: Miklos Vajna (cherry picked from commit ed9d6ef1e647b574f58ba870d71a4291d958c0ad) --- include/LibreOfficeKit/LibreOfficeKitGtk.h | 3 +++ libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 1 + libreofficekit/source/gtk/lokdocview.cxx | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/include/LibreOfficeKit/LibreOfficeKitGtk.h b/include/LibreOfficeKit/LibreOfficeKitGtk.h index 962f9d9265bb..b98a85646e0e 100644 --- a/include/LibreOfficeKit/LibreOfficeKitGtk.h +++ b/include/LibreOfficeKit/LibreOfficeKitGtk.h @@ -63,6 +63,9 @@ char* lok_doc_view_get_part_name (LOKDocView* int nPart); void lok_doc_view_set_partmode (LOKDocView* pDocView, int nPartMode); + +void lok_doc_view_reset_view (LOKDocView* pDocView); + /// Sets if the viewer is actually an editor or not. void lok_doc_view_set_edit (LOKDocView* pDocView, gboolean bEdit); diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index d40cceb291ed..8c43e9d68092 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -356,6 +356,7 @@ static void changePart( GtkWidget* pSelector, gpointer /* pItem */ ) if (g_bPartSelectorBroadcast && pDocView) { lok_doc_view_set_part( LOK_DOC_VIEW(pDocView), nPart ); + lok_doc_view_reset_view( LOK_DOC_VIEW(pDocView) ); } } diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index 5de795a1a961..27d597ae57e3 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -1529,6 +1529,14 @@ lok_doc_view_set_partmode(LOKDocView* pDocView, priv->m_pDocument->pClass->setPartMode( priv->m_pDocument, nPartMode ); } +SAL_DLLPUBLIC_EXPORT void +lok_doc_view_reset_view(LOKDocView* pDocView) +{ + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + priv->m_aTileBuffer.resetAllTiles(); + gtk_widget_queue_draw(GTK_WIDGET(pDocView)); +} + /** * lok_doc_view_set_edit: * @pDocView: The #LOKDocView instance -- 2.12.0