diff --git a/include/LibreOfficeKit/LibreOfficeKitGtk.h b/include/LibreOfficeKit/LibreOfficeKitGtk.h index 962f9d9265bb2e7f0bba89e53eddf37ba0e2ab2b..b98a85646e0e572e577b4f84d320cb93e1f3df9c 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 ec70a88d9893fb1e29bf7c548b6a62e0e70a11dd..6c0de3985c1fdb3276b7db5d7aee52bd55c7cd88 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -357,6 +357,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 bf12ca02955a41bef1f1f01b646adad82ffe91fe..3823e9465ab00325db4183f8f7c8d55d33ea8d5c 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