Blame SOURCES/0371-tdf-96384-Add-a-new-signal-text-selection-to-lokdocv.patch

f325b2
From 8d11e5ab0f7d7fb882086a626c69bfb218c9ab3e Mon Sep 17 00:00:00 2001
f325b2
From: Pranav Kant <pranavk@libreoffice.org>
f325b2
Date: Thu, 10 Dec 2015 21:10:16 +0530
f325b2
Subject: [PATCH 371/398] tdf#96384: Add a new signal 'text-selection' to
f325b2
 lokdocview
f325b2
f325b2
To help client know when the user has selected a non-null text.
f325b2
f325b2
Change-Id: Ie939612fc5f38e2e50e9ad9792e04e89ae918886
f325b2
Reviewed-on: https://gerrit.libreoffice.org/20621
f325b2
Tested-by: Jenkins <ci@libreoffice.org>
f325b2
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
f325b2
(cherry picked from commit ea5c99428f56e1d3a3e782505aa2f56f905038a4)
f325b2
Signed-off-by: David Tardon <dtardon@redhat.com>
f325b2
(cherry picked from commit 3f13961c45ea9a6f90c0bc268a2274634d9b8033)
f325b2
---
f325b2
 libreofficekit/source/gtk/lokdocview.cxx | 21 ++++++++++++++++++++-
f325b2
 1 file changed, 20 insertions(+), 1 deletion(-)
f325b2
f325b2
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
f325b2
index 99ad819f6e5c..012c75f29e1b 100644
f325b2
--- a/libreofficekit/source/gtk/lokdocview.cxx
f325b2
+++ b/libreofficekit/source/gtk/lokdocview.cxx
f325b2
@@ -186,6 +186,7 @@ enum
f325b2
     SEARCH_RESULT_COUNT,
f325b2
     COMMAND_RESULT,
f325b2
     FORMULA_CHANGED,
f325b2
+    TEXT_SELECTION,
f325b2
 
f325b2
     LAST_SIGNAL
f325b2
 };
f325b2
@@ -925,8 +926,9 @@ callback (gpointer pData)
f325b2
     case LOK_CALLBACK_TEXT_SELECTION:
f325b2
     {
f325b2
         priv->m_aTextSelectionRectangles = payloadToRectangles(pDocView, pCallback->m_aPayload.c_str());
f325b2
+        gboolean bIsTextSelected = !priv->m_aTextSelectionRectangles.empty();
f325b2
         // In case the selection is empty, then we get no LOK_CALLBACK_TEXT_SELECTION_START/END events.
f325b2
-        if (priv->m_aTextSelectionRectangles.empty())
f325b2
+        if (!bIsTextSelected)
f325b2
         {
f325b2
             memset(&priv->m_aTextSelectionStart, 0, sizeof(priv->m_aTextSelectionStart));
f325b2
             memset(&priv->m_aHandleStartRect, 0, sizeof(priv->m_aHandleStartRect));
f325b2
@@ -935,6 +937,8 @@ callback (gpointer pData)
f325b2
         }
f325b2
         else
f325b2
             memset(&priv->m_aHandleMiddleRect, 0, sizeof(priv->m_aHandleMiddleRect));
f325b2
+
f325b2
+        g_signal_emit(pDocView, doc_view_signals[TEXT_SELECTION], 0, bIsTextSelected);
f325b2
         gtk_widget_queue_draw(GTK_WIDGET(pDocView));
f325b2
     }
f325b2
     break;
f325b2
@@ -2380,6 +2384,21 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
f325b2
                      g_cclosure_marshal_VOID__STRING,
f325b2
                      G_TYPE_NONE, 1,
f325b2
                      G_TYPE_STRING);
f325b2
+
f325b2
+    /**
f325b2
+     * LOKDocView::text-selection:
f325b2
+     * @pDocView: the #LOKDocView on which the signal is emitted
f325b2
+     * @bIsTextSelected: whether text selected is non-null
f325b2
+     */
f325b2
+    doc_view_signals[TEXT_SELECTION] =
f325b2
+        g_signal_new("text-selection",
f325b2
+                     G_TYPE_FROM_CLASS(pGObjectClass),
f325b2
+                     G_SIGNAL_RUN_FIRST,
f325b2
+                     0,
f325b2
+                     nullptr, nullptr,
f325b2
+                     g_cclosure_marshal_VOID__BOOLEAN,
f325b2
+                     G_TYPE_NONE, 1,
f325b2
+                     G_TYPE_BOOLEAN);
f325b2
 }
f325b2
 
f325b2
 SAL_DLLPUBLIC_EXPORT GtkWidget*
f325b2
-- 
f325b2
2.12.0
f325b2