desktop/CppunitTest_desktop_lib.mk | 1 desktop/qa/desktop_lib/test_desktop_lib.cxx | 46 ++++++++++++++++++++ libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 19 ++++++++ sw/Module_sw.mk | 7 ++- sw/inc/SidebarWin.hxx | 2 sw/qa/extras/tiledrendering/tiledrendering.cxx | 34 -------------- sw/source/core/fields/docufld.cxx | 5 +- sw/source/uibase/docvw/SidebarTxtControl.hxx | 4 - sw/source/uibase/docvw/SidebarWin.cxx | 28 ++++++++++++ sw/source/uibase/docvw/edtwin.cxx | 18 +++++++ vcl/source/window/seleng.cxx | 5 +- 11 files changed, 130 insertions(+), 39 deletions(-)
New commits: commit 44c7272fc543947792ae8195341b8867d81e3925 Author: Miklos Vajna <[email protected]> Date: Sat Nov 14 17:10:32 2015 +0100 SwPostItField::dumpAsXml: survive 0 mpText And no need to copy it to be able to dump it. Change-Id: I5c0782c489a5d7c24173a81cc82efd195c4aa56e diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index 29b646c..45c0caa 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -1841,8 +1841,9 @@ void SwPostItField::dumpAsXml(xmlTextWriterPtr pWriter) const SwField::dumpAsXml(pWriter); xmlTextWriterStartElement(pWriter, BAD_CAST("mpText")); - OutlinerParaObject aParaObject(*mpText); - aParaObject.dumpAsXml(pWriter); + xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", mpText); + if (mpText) + mpText->dumpAsXml(pWriter); xmlTextWriterEndElement(pWriter); xmlTextWriterEndElement(pWriter); commit 1118689e70ed49604ded6e1ae83a22bdc995b2fb Author: Miklos Vajna <[email protected]> Date: Sat Nov 14 16:59:01 2015 +0100 CppunitTest_desktop_lib: add Writer comments textcase Fails without e.g. the last hunk of commit 1ba9d7fd2a7a3e2b4f52ed0f5efdf7df867b9db3 (sw lok: forward key events to annotation window if necessary, 2015-11-12). Change-Id: I7f39530881f6141fea956b751aa57eb2bdcadcb2 diff --git a/desktop/CppunitTest_desktop_lib.mk b/desktop/CppunitTest_desktop_lib.mk index ca9d8db..bbedfdc 100644 --- a/desktop/CppunitTest_desktop_lib.mk +++ b/desktop/CppunitTest_desktop_lib.mk @@ -67,6 +67,7 @@ $(eval $(call gb_CppunitTest_use_components,desktop_lib,\ xmloff/util/xo \ i18npool/source/search/i18nsearch \ filter/source/graphic/graphicfilter \ + linguistic/source/lng \ )) $(eval $(call gb_CppunitTest_use_configuration,desktop_lib)) diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index 21e177a..5ca573d 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -10,6 +10,10 @@ #include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/frame/XComponentLoader.hpp> +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/awt/Key.hpp> +#include <com/sun/star/awt/XReschedule.hpp> +#include <com/sun/star/awt/Toolkit.hpp> #include <boost/property_tree/json_parser.hpp> #include <comphelper/processfactory.hxx> @@ -70,6 +74,7 @@ public: void testRowColumnHeaders(); void testCellCursor(); void testCommandResult(); + void testWriterComments(); CPPUNIT_TEST_SUITE(DesktopLOKTest); CPPUNIT_TEST(testGetStyles); @@ -85,6 +90,7 @@ public: CPPUNIT_TEST(testRowColumnHeaders); CPPUNIT_TEST(testCellCursor); CPPUNIT_TEST(testCommandResult); + CPPUNIT_TEST(testWriterComments); CPPUNIT_TEST_SUITE_END(); uno::Reference<lang::XComponent> mxComponent; @@ -491,6 +497,46 @@ void DesktopLOKTest::testCommandResult() CPPUNIT_ASSERT_EQUAL(aTree.get_child("success").get_value<bool>(), true); } +void DesktopLOKTest::testWriterComments() +{ + comphelper::LibreOfficeKit::setActive(); + LibLODocument_Impl* pDocument = loadDoc("blank_text.odt"); + pDocument->pClass->registerCallback(pDocument, &DesktopLOKTest::callback, this); + uno::Reference<awt::XReschedule> xToolkit(com::sun::star::awt::Toolkit::create(comphelper::getProcessComponentContext()), uno::UNO_QUERY); + + // Insert a comment at the beginning of the document and wait till the main + // loop grabs the focus, so characters end up in the annotation window. + TimeValue aTimeValue = {2 , 0}; // 2 seconds max + m_aCommandResultCondition.reset(); + pDocument->pClass->postUnoCommand(pDocument, ".uno:InsertAnnotation", nullptr, true); + m_aCommandResultCondition.wait(aTimeValue); + CPPUNIT_ASSERT(!m_aCommandResult.isEmpty()); + xToolkit->reschedule(); + + // Test that we have a comment. + uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XEnumerationAccess> xParagraphEnumerationAccess(xTextDocument->getText(), uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xParagraphEnumeration = xParagraphEnumerationAccess->createEnumeration(); + uno::Reference<container::XEnumerationAccess> xParagraph(xParagraphEnumeration->nextElement(), uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xTextPortionEnumeration = xParagraph->createEnumeration(); + uno::Reference<beans::XPropertySet> xTextPortion(xTextPortionEnumeration->nextElement(), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(OUString("Annotation"), xTextPortion->getPropertyValue("TextPortionType").get<OUString>()); + + // Type "test" and finish editing. + pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 't', 0); + pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 'e', 0); + pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 's', 0); + pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 't', 0); + pDocument->pClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 0, com::sun::star::awt::Key::ESCAPE); + + // Test that the typed characters ended up in the right window. + auto xTextField = xTextPortion->getPropertyValue("TextField").get< uno::Reference<beans::XPropertySet> >(); + // This was empty, typed characters ended up in the body text. + CPPUNIT_ASSERT_EQUAL(OUString("test"), xTextField->getPropertyValue("Content").get<OUString>()); + + comphelper::LibreOfficeKit::setActive(false); +} + CPPUNIT_TEST_SUITE_REGISTRATION(DesktopLOKTest); CPPUNIT_PLUGIN_IMPLEMENT(); commit 18dfcbb11a05b7e702dc2161df9db8386a7ca34b Author: Miklos Vajna <[email protected]> Date: Sat Nov 14 15:35:18 2015 +0100 CppunitTest_sw_tiledrendering: replace various ifdefs with a single condition LOK is Linux-only at the moment, don't bother with disabling each and every unit test on Mac/Windows for now. Change-Id: I2ff1ed47251c16ec6a8d43138789480d95ea720e diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk index 7dfd541..39b466f 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -69,11 +69,16 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_odfexport \ CppunitTest_sw_odfimport \ CppunitTest_sw_uiwriter \ - CppunitTest_sw_tiledrendering \ CppunitTest_sw_mailmerge \ CppunitTest_sw_globalfilter \ )) +ifeq ($(OS),LINUX) +$(eval $(call gb_Module_add_slowcheck_targets,sw,\ + CppunitTest_sw_tiledrendering \ +)) +endif + ifneq ($(DISABLE_CVE_TESTS),TRUE) $(eval $(call gb_Module_add_slowcheck_targets,sw,\ CppunitTest_sw_filters_test \ diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index 523c9d2..2ec1052 100644 --- a/sw/qa/extras/tiledrendering/tiledrendering.cxx +++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx @@ -151,18 +151,6 @@ void SwTiledRenderingTest::callbackImpl(int nType, const char* pPayload) void SwTiledRenderingTest::testRegisterCallback() { -#ifdef MACOSX - // For some reason this particular test requires window system access on OS X. - - // Without window system access, we do get a number of "<<<WARNING>>> - // AquaSalGraphics::CheckContext() FAILED!!!!" [sic] and " <Warning>: CGSConnectionByID: 0 is - // not a valid connection ID" warnings while running the other tests, too, but they still - // succeed. - - if (!vcl::IsWindowSystemAvailable()) - return; -#endif - SwXTextDocument* pXTextDocument = createDoc("dummy.fodt"); pXTextDocument->registerCallback(&SwTiledRenderingTest::callback, this); SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell(); @@ -171,13 +159,8 @@ void SwTiledRenderingTest::testRegisterCallback() // Check that the top left 256x256px tile would be invalidated. CPPUNIT_ASSERT(!m_aInvalidation.IsEmpty()); -#if !defined(WNT) && !defined(MACOSX) Rectangle aTopLeft(0, 0, 256*15, 256*15); // 1 px = 15 twips, assuming 96 DPI. - // FIXME - fails on Windows since about cbd48230bb3a90c4c485fa33123c6653234e02e9 - // [plus minus few commits maybe] - // Also on OS X. But is tiled rendering even supposed to work on Windows and OS X? CPPUNIT_ASSERT(m_aInvalidation.IsOver(aTopLeft)); -#endif } void SwTiledRenderingTest::testPostKeyEvent() @@ -291,9 +274,7 @@ void SwTiledRenderingTest::testSetGraphicSelection() Rectangle aShapeAfter = pObject->GetSnapRect(); // Check that a resize happened, but aspect ratio is not kept. CPPUNIT_ASSERT_EQUAL(aShapeBefore.getWidth(), aShapeAfter.getWidth()); -#if !defined(MACOSX) // FIXME CPPUNIT_ASSERT_EQUAL(aShapeBefore.getHeight() + 1000, aShapeAfter.getHeight()); -#endif } void SwTiledRenderingTest::testResetSelection() @@ -323,7 +304,6 @@ void SwTiledRenderingTest::testResetSelection() CPPUNIT_ASSERT(!pWrtShell->IsSelFrmMode()); } -#if !(defined WNT || defined MACOSX) void lcl_search(bool bBackward) { uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence( @@ -333,11 +313,9 @@ void lcl_search(bool bBackward) })); comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues); } -#endif void SwTiledRenderingTest::testSearch() { -#if !defined(WNT) && !defined(MACOSX) comphelper::LibreOfficeKit::setActive(); SwXTextDocument* pXTextDocument = createDoc("search.odt"); @@ -378,12 +356,10 @@ void SwTiledRenderingTest::testSearch() CPPUNIT_ASSERT_EQUAL(nNode + 1, nActual); comphelper::LibreOfficeKit::setActive(false); -#endif } void SwTiledRenderingTest::testSearchViewArea() { -#if !defined(WNT) && !defined(MACOSX) SwXTextDocument* pXTextDocument = createDoc("search.odt"); SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell(); // Go to the second page, 1-based. @@ -405,12 +381,10 @@ void SwTiledRenderingTest::testSearchViewArea() comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues); // This was just "Heading", i.e. SwView::SearchAndWrap() did not search from only the top of the second page. CPPUNIT_ASSERT_EQUAL(OUString("Heading on second page"), pShellCrsr->GetPoint()->nNode.GetNode().GetTextNode()->GetText()); -#endif } void SwTiledRenderingTest::testSearchTextFrame() { -#if !defined(WNT) && !defined(MACOSX) comphelper::LibreOfficeKit::setActive(); SwXTextDocument* pXTextDocument = createDoc("search.odt"); @@ -425,12 +399,10 @@ void SwTiledRenderingTest::testSearchTextFrame() CPPUNIT_ASSERT(!m_aTextSelection.isEmpty()); comphelper::LibreOfficeKit::setActive(false); -#endif } void SwTiledRenderingTest::testSearchTextFrameWrapAround() { -#if !defined(WNT) && !defined(MACOSX) SwXTextDocument* pXTextDocument = createDoc("search.odt"); pXTextDocument->registerCallback(&SwTiledRenderingTest::callback, this); uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence( @@ -443,12 +415,10 @@ void SwTiledRenderingTest::testSearchTextFrameWrapAround() comphelper::dispatchCommand(".uno:ExecuteSearch", aPropertyValues); // This failed, i.e. the second time 'not found' was reported, instead of wrapping around. CPPUNIT_ASSERT(m_bFound); -#endif } void SwTiledRenderingTest::testDocumentSizeChanged() { -#if !defined(WNT) && !defined(MACOSX) // Get the current document size. SwXTextDocument* pXTextDocument = createDoc("2-pages.odt"); pXTextDocument->registerCallback(&SwTiledRenderingTest::callback, this); @@ -463,12 +433,10 @@ void SwTiledRenderingTest::testDocumentSizeChanged() CPPUNIT_ASSERT_EQUAL(aSize.getWidth(), m_aDocumentSize.getWidth()); // Document height should be smaller now. CPPUNIT_ASSERT(aSize.getHeight() > m_aDocumentSize.getHeight()); -#endif } void SwTiledRenderingTest::testSearchAll() { -#if !defined(WNT) && !defined(MACOSX) comphelper::LibreOfficeKit::setActive(); SwXTextDocument* pXTextDocument = createDoc("search.odt"); @@ -486,8 +454,8 @@ void SwTiledRenderingTest::testSearchAll() CPPUNIT_ASSERT_EQUAL(0, m_aSearchResultPart[0]); comphelper::LibreOfficeKit::setActive(false); -#endif } + CPPUNIT_TEST_SUITE_REGISTRATION(SwTiledRenderingTest); CPPUNIT_PLUGIN_IMPLEMENT(); commit bd05cc9a5093bbf5d2e136a6589be612df81d27e Author: Miklos Vajna <[email protected]> Date: Sat Nov 14 15:10:18 2015 +0100 gtktiledviewer: add toolbar buttons to insert / delete comments Change-Id: Ia566e983548a89d974c133823da2f07d5c2e35e4 diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index 8ec5ddf..c65e4a1 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -1094,6 +1094,23 @@ static GtkWidget* createWindow(TiledWindow& rWindow) gtk_toolbar_insert(GTK_TOOLBAR(pLowerToolbar), rWindow.m_pJustifypara, -1); g_signal_connect(G_OBJECT(rWindow.m_pJustifypara), "toggled", G_CALLBACK(toggleToolItem), NULL); lcl_registerToolItem(rWindow, rWindow.m_pJustifypara, ".uno:JustifyPara"); + gtk_toolbar_insert(GTK_TOOLBAR(pLowerToolbar), gtk_separator_tool_item_new(), -1); + + // Insert/delete comments. + GtkToolItem* pInsertAnnotation = gtk_tool_button_new(nullptr, nullptr); + gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(pInsertAnnotation), "changes-allow-symbolic"); + gtk_tool_item_set_tooltip_text(pInsertAnnotation, "Insert Comment"); + gtk_toolbar_insert(GTK_TOOLBAR(pLowerToolbar), pInsertAnnotation, -1); + g_signal_connect(G_OBJECT(pInsertAnnotation), "clicked", G_CALLBACK(toggleToolItem), NULL); + lcl_registerToolItem(rWindow, pInsertAnnotation, ".uno:InsertAnnotation"); + + GtkToolItem* pDeleteComment = gtk_tool_button_new(nullptr, nullptr); + gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(pDeleteComment), "changes-prevent-symbolic"); + gtk_tool_item_set_tooltip_text(pDeleteComment, "Delete Comment"); + gtk_toolbar_insert(GTK_TOOLBAR(pLowerToolbar), pDeleteComment, -1); + g_signal_connect(G_OBJECT(pDeleteComment), "clicked", G_CALLBACK(toggleToolItem), NULL); + lcl_registerToolItem(rWindow, pDeleteComment, ".uno:DeleteComment"); + // Formula bar GtkToolItem* pFormulaEntryContainer = gtk_tool_item_new(); rWindow.m_pFormulabarEntry = gtk_entry_new(); commit 9caca9fe23ac8e193f89a11503d92b058669a660 Author: Miklos Vajna <[email protected]> Date: Sat Nov 14 15:05:33 2015 +0100 gtktiledviewer: the formula bar is calc-only Change-Id: Ib989a23e5ece49b6eb16b25bb1fb6f635df25829 diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index c16a87b..8ec5ddf 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -303,6 +303,7 @@ gboolean TiledRowColumnBar::docConfigureEvent(GtkWidget* pDocView, GdkEventConfi } gtk_widget_show(rWindow.m_pColumnBar->m_pDrawingArea); gtk_widget_queue_draw(rWindow.m_pColumnBar->m_pDrawingArea); + gtk_widget_show(rWindow.m_pFormulabarEntry); } return TRUE; @@ -1188,6 +1189,7 @@ static GtkWidget* createWindow(TiledWindow& rWindow) gtk_widget_hide(rWindow.m_pCornerButton->m_pDrawingArea); gtk_widget_hide(rWindow.m_pRowBar->m_pDrawingArea); gtk_widget_hide(rWindow.m_pColumnBar->m_pDrawingArea); + gtk_widget_hide(rWindow.m_pFormulabarEntry); // Hide the non-progressbar children of the status bar by default. gtk_widget_hide(rWindow.m_pStatusbarLabel); gtk_widget_hide(rWindow.m_pZoomLabel); commit b3dc0d7c72c2bb997bfceaeaf25dc9153ceca244 Author: Miklos Vajna <[email protected]> Date: Sat Nov 14 14:42:26 2015 +0100 sw lok comments: implement mouse move and mouse up As long as we don't tweak the map mode of the comment widgets permanently we also have to disable the selection engine's timer, as that would emit events without the correct map mode: so disable that for the LOK case for now. Change-Id: If377ff2f064c30feb473f153f9d5b29b8ace7113 diff --git a/sw/inc/SidebarWin.hxx b/sw/inc/SidebarWin.hxx index bda077b..4d88b46 100644 --- a/sw/inc/SidebarWin.hxx +++ b/sw/inc/SidebarWin.hxx @@ -179,6 +179,8 @@ class SwSidebarWin : public vcl::Window virtual void Draw(OutputDevice* pDev, const Point&, const Size&, DrawFlags) override; virtual void KeyInput(const KeyEvent& rKeyEvt) override; virtual void MouseButtonDown(const MouseEvent& rMouseEvent) override; + virtual void MouseButtonUp(const MouseEvent& rMouseEvent) override; + virtual void MouseMove(const MouseEvent& rMouseEvent) override; void PaintTile(vcl::RenderContext& rRenderContext, const Rectangle& rRect); /// Is there a matching sub-widget inside this sidebar widget for rPointLogic? bool IsHitWindow(const Point& rPointLogic); diff --git a/sw/source/uibase/docvw/SidebarTxtControl.hxx b/sw/source/uibase/docvw/SidebarTxtControl.hxx index ca7271a..7142898 100644 --- a/sw/source/uibase/docvw/SidebarTxtControl.hxx +++ b/sw/source/uibase/docvw/SidebarTxtControl.hxx @@ -42,8 +42,6 @@ class SidebarTextControl : public Control virtual void Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect) override; /// @see OutputDevice::LogicInvalidate(). void LogicInvalidate(const Rectangle* pRectangle) override; - virtual void MouseMove( const MouseEvent& rMEvt ) override; - virtual void MouseButtonUp( const MouseEvent& rMEvt ) override; virtual void Command( const CommandEvent& rCEvt ) override; virtual void LoseFocus() override; virtual void RequestHelp(const HelpEvent &rEvt) override; @@ -63,6 +61,8 @@ class SidebarTextControl : public Control virtual void GetFocus() override; virtual void KeyInput( const KeyEvent& rKeyEvt ) override; virtual void MouseButtonDown(const MouseEvent& rMouseEvent) override; + virtual void MouseButtonUp(const MouseEvent& rMEvt) override; + virtual void MouseMove(const MouseEvent& rMEvt) override; OutlinerView* GetTextView() const; diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx index 22bb863..867cd2b 100644 --- a/sw/source/uibase/docvw/SidebarWin.cxx +++ b/sw/source/uibase/docvw/SidebarWin.cxx @@ -411,6 +411,20 @@ void SwSidebarWin::KeyInput(const KeyEvent& rKeyEvent) } } +void SwSidebarWin::MouseMove(const MouseEvent& rMouseEvent) +{ + if (mpSidebarTextControl) + { + mpSidebarTextControl->Push(PushFlags::MAPMODE); + MouseEvent aMouseEvent(rMouseEvent); + lcl_translateTwips(EditWin(), *mpSidebarTextControl, &aMouseEvent); + + mpSidebarTextControl->MouseMove(aMouseEvent); + + mpSidebarTextControl->Pop(); + } +} + void SwSidebarWin::MouseButtonDown(const MouseEvent& rMouseEvent) { if (mpSidebarTextControl) @@ -425,6 +439,20 @@ void SwSidebarWin::MouseButtonDown(const MouseEvent& rMouseEvent) } } +void SwSidebarWin::MouseButtonUp(const MouseEvent& rMouseEvent) +{ + if (mpSidebarTextControl) + { + mpSidebarTextControl->Push(PushFlags::MAPMODE); + MouseEvent aMouseEvent(rMouseEvent); + lcl_translateTwips(EditWin(), *mpSidebarTextControl, &aMouseEvent); + + mpSidebarTextControl->MouseButtonUp(aMouseEvent); + + mpSidebarTextControl->Pop(); + } +} + void SwSidebarWin::SetPosSizePixelRect(long nX, long nY, long nWidth, long nHeight, const SwRect& aAnchorRect, const long aPageBorder) { diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index 98aac51..59c11be 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -3732,6 +3732,15 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt) { MouseEvent rMEvt(_rMEvt); + if (comphelper::LibreOfficeKit::isActive()) + { + if (vcl::Window* pWindow = m_rView.GetPostItMgr()->IsHitSidebarWindow(rMEvt.GetPosPixel())) + { + pWindow->MouseMove(rMEvt); + return; + } + } + //ignore key modifiers for format paintbrush { bool bExecFormatPaintbrush = m_pApplyTempl && m_pApplyTempl->m_pFormatClipboard @@ -4237,6 +4246,15 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt) */ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt) { + if (comphelper::LibreOfficeKit::isActive()) + { + if (vcl::Window* pWindow = m_rView.GetPostItMgr()->IsHitSidebarWindow(rMEvt.GetPosPixel())) + { + pWindow->MouseButtonUp(rMEvt); + return; + } + } + bool bCallBase = true; bool bCallShadowCrsr = m_bWasShdwCrsr; diff --git a/vcl/source/window/seleng.cxx b/vcl/source/window/seleng.cxx index 7999818..69b220b 100644 --- a/vcl/source/window/seleng.cxx +++ b/vcl/source/window/seleng.cxx @@ -20,6 +20,7 @@ #include <vcl/window.hxx> #include <vcl/seleng.hxx> #include <tools/debug.hxx> +#include <comphelper/lok.hxx> FunctionSet::~FunctionSet() { @@ -301,7 +302,9 @@ bool SelectionEngine::SelMouseMove( const MouseEvent& rMEvt ) return true; aWTimer.SetTimeout( nUpdateInterval ); - aWTimer.Start(); + if (!comphelper::LibreOfficeKit::isActive()) + // Generating fake mouse moves does not work with LOK. + aWTimer.Start(); if ( eSelMode != SINGLE_SELECTION ) { if ( !(nFlags & SelectionEngineFlags::HAS_ANCH) ) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
