summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-05-28 17:21:50 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-05-29 09:50:24 +0200
commit3c0149457d19b5641e65e19620dd7771643adb8b (patch)
treedb11de4c7bfe9d1c06553a7c10f4d5c4e2da0a14
parent6bccdf23fdf755494e840a3a21380a754969df73 (diff)
gtktiledviewer: use SearchItem.SearchStartPoint*
Change-Id: If0219eda3a2ca3b97c37bea70e35d47e49d38e02 (cherry picked from commit 3c9fb5898159fbda9d5b23f3f518044a5df03f72)
-rw-r--r--include/LibreOfficeKit/LibreOfficeKitGtk.h3
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx10
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx8
3 files changed, 20 insertions, 1 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitGtk.h b/include/LibreOfficeKit/LibreOfficeKitGtk.h
index 320121e0b819..b3e50d31b01d 100644
--- a/include/LibreOfficeKit/LibreOfficeKitGtk.h
+++ b/include/LibreOfficeKit/LibreOfficeKitGtk.h
@@ -74,6 +74,9 @@ void lok_docview_post_command (LOKDocView* pDocView, const char* p
/// Posts a keyboard event to LibreOfficeKit.
void lok_docview_post_key (GtkWidget* pWidget, GdkEventKey* pEvent, gpointer pData);
+
+/// Get the visible area of the document (in twips).
+void lok_docview_get_visarea(LOKDocView* pThis, GdkRectangle* pArea);
#ifdef __cplusplus
}
#endif
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index ed2471f6c401..83ec9d23c113 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -158,10 +158,18 @@ static void doSearch(bool bBackwards)
aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchString/value", '/'), pText);
aTree.put(boost::property_tree::ptree::path_type("SearchItem.Backward/type", '/'), "boolean");
aTree.put(boost::property_tree::ptree::path_type("SearchItem.Backward/value", '/'), bBackwards);
+
+ LOKDocView* pLOKDocView = LOK_DOCVIEW(pDocView);
+ GdkRectangle aArea;
+ lok_docview_get_visarea(pLOKDocView, &aArea);
+ aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointX/type", '/'), "long");
+ aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointX/value", '/'), aArea.x);
+ aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointY/type", '/'), "long");
+ aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointY/value", '/'), aArea.y);
+
std::stringstream aStream;
boost::property_tree::write_json(aStream, aTree);
- LOKDocView* pLOKDocView = LOK_DOCVIEW(pDocView);
lok_docview_post_command(pLOKDocView, ".uno:ExecuteSearch", aStream.str().c_str());
}
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index d01c74308460..7ab7f099c8bf 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -1316,4 +1316,12 @@ SAL_DLLPUBLIC_EXPORT void lok_docview_post_key(GtkWidget* /*pWidget*/, GdkEventK
pDocView->m_pImpl->signalKey(pEvent);
}
+SAL_DLLPUBLIC_EXPORT void lok_docview_get_visarea(LOKDocView* pThis, GdkRectangle* pArea)
+{
+ GtkAdjustment* pHAdjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(pThis));
+ pArea->x = pThis->m_pImpl->pixelToTwip(gtk_adjustment_get_value(pHAdjustment));
+ GtkAdjustment* pVAdjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(pThis));
+ pArea->y = pThis->m_pImpl->pixelToTwip(gtk_adjustment_get_value(pVAdjustment));
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */