Blame SOURCES/0071-gtktiledviewer-method-for-resetting-all-tiles.patch

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