[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - libreofficekit/source

Henry Castro hcastro at collabora.com
Tue Mar 31 12:46:33 PDT 2015


 libreofficekit/source/gtk/lokdocview.cxx |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

New commits:
commit e3a87d7577eea1f015791ee154d98510cebc239e
Author: Henry Castro <hcastro at collabora.com>
Date:   Tue Mar 31 15:37:53 2015 -0400

    sc tiled editing: Invalidate graphic selection.
    
    Invalidate before assignment and after new assignment graphic selection.
    
    Change-Id: I3fe2c16663ac173e10dacb51c803614a538d7f49

diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index f5a3257..a3293ee 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -34,6 +34,8 @@
 // Number of handles around a graphic selection.
 #define GRAPHIC_HANDLE_COUNT 8
 
+static void lok_docview_callback_worker(int nType, const char* pPayload, void* pData);
+
 // We know that VirtualDevices use a DPI of 96.
 static const int DPI = 96;
 
@@ -981,7 +983,23 @@ static gboolean lok_docview_callback(gpointer pData)
     case LOK_CALLBACK_GRAPHIC_SELECTION:
     {
         if (strcmp(pCallback->m_pPayload, "EMPTY") != 0)
+        {
+            // invalidate old graphic selection
+            gchar* pRect = g_strdup_printf("%d, %d, %d, %d",
+                            pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.x, pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.y,
+                            pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.width, pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.height);
+            lok_docview_callback_worker(LOK_CALLBACK_INVALIDATE_TILES, pRect, pCallback->m_pDocView);
+            g_free (pRect);
+
             pCallback->m_pDocView->m_pImpl->m_aGraphicSelection = LOKDocView_Impl::payloadToRectangle(pCallback->m_pPayload);
+
+            // invalidate new graphic selection
+            pRect = g_strdup_printf("%d, %d, %d, %d",
+                            pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.x, pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.y,
+                            pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.width, pCallback->m_pDocView->m_pImpl->m_aGraphicSelection.height);
+            lok_docview_callback_worker(LOK_CALLBACK_INVALIDATE_TILES, pRect, pCallback->m_pDocView);
+            g_free (pRect);
+        }
         else
             memset(&pCallback->m_pDocView->m_pImpl->m_aGraphicSelection, 0, sizeof(pCallback->m_pDocView->m_pImpl->m_aGraphicSelection));
         gtk_widget_queue_draw(GTK_WIDGET(pCallback->m_pDocView->m_pImpl->m_pEventBox));


More information about the Libreoffice-commits mailing list