summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-12-21 13:20:26 +0530
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-12-22 22:02:24 +0100
commit44ae26e0b9ac08493bf67419e2a6a01f221af26b (patch)
tree200a4ab034a78275b3099b950bc2f64cc06aadfd /libreofficekit
parent8b4704f84814cecb2e60ab0ab6aa4924968a51e5 (diff)
lokdocview: Handle INVALIDATE_HEADER cb
With this calc gtktiledviewer or any other lok client shouldn't crash anymore when a new view is opened. And while at it, update documentation of callbacks. Change-Id: I436c3b424dd4e2e6b8c312b0d3ba43d7006e944b (cherry picked from commit 71cd37fad9792038279969c82e0cb209df06f024) Reviewed-on: https://gerrit.libreoffice.org/46950 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx39
1 files changed, 39 insertions, 0 deletions
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 2735c77b9f75..ca47080c7618 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -277,6 +277,7 @@ enum
PASSWORD_REQUIRED,
COMMENT,
RULER,
+ INVALIDATE_HEADER,
LAST_SIGNAL
};
@@ -430,6 +431,8 @@ callbackTypeToString (int nType)
return "LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED";
case LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED:
return "LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED";
+ case LOK_CALLBACK_INVALIDATE_HEADER:
+ return "LOK_CALLBACK_INVALIDATE_HEADER";
case LOK_CALLBACK_COMMENT:
return "LOK_CALLBACK_COMMENT";
case LOK_CALLBACK_RULER_UPDATE:
@@ -1426,6 +1429,9 @@ callback (gpointer pData)
case LOK_CALLBACK_RULER_UPDATE:
g_signal_emit(pCallback->m_pDocView, doc_view_signals[RULER], 0, pCallback->m_aPayload.c_str());
break;
+ case LOK_CALLBACK_INVALIDATE_HEADER:
+ g_signal_emit(pCallback->m_pDocView, doc_view_signals[INVALIDATE_HEADER], 0, pCallback->m_aPayload.c_str());
+ break;
default:
g_assert(false);
break;
@@ -3213,6 +3219,22 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
G_TYPE_NONE, 1,
G_TYPE_STRING);
+ /**
+ * The key ruler related properties on change are reported by this.
+ *
+ * The payload format is:
+ *
+ * {
+ * "margin1": "...",
+ * "margin2": "...",
+ * "leftOffset": "...",
+ * "pageOffset": "...",
+ * "pageWidth": "...",
+ * "unit": "..."
+ * }
+ *
+ * Here all aproperties are same as described in svxruler.
+ */
doc_view_signals[RULER] =
g_signal_new("ruler",
G_TYPE_FROM_CLASS(pGObjectClass),
@@ -3222,6 +3244,23 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
g_cclosure_marshal_generic,
G_TYPE_NONE, 1,
G_TYPE_STRING);
+
+ /**
+ * The column/row header is no more valid because of a column/row insertion
+ * or a similar event. Clients must query a new column/row header set.
+ *
+ * The payload says if we are invalidating a row or column header. So,
+ * payload values can be: "row", "column", "all".
+ */
+ doc_view_signals[INVALIDATE_HEADER] =
+ g_signal_new("invalidate-header",
+ G_TYPE_FROM_CLASS(pGObjectClass),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ nullptr, nullptr,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE, 1,
+ G_TYPE_STRING);
}
SAL_DLLPUBLIC_EXPORT GtkWidget*