sd/qa/unit/tiledrendering/tiledrendering.cxx | 37 ++++++++++++++++++++++++--- sd/source/ui/table/tablefunction.cxx | 20 ++++++++++---- 2 files changed, 49 insertions(+), 8 deletions(-)
New commits: commit 8c32ffd59aef2c7b319d64c310e7d0a46dbb9e2c Author: Jan Holesovsky <ke...@collabora.com> Date: Thu Mar 31 15:48:52 2016 +0200 sd lok bccu#1525: Unit test for the fix. Change-Id: I55107bd36a9b716ecbef4d01dd670617b141cc48 diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index 1d6775f..f62fa5e 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -46,7 +46,6 @@ public: virtual void tearDown() override; #if !defined(_WIN32) && !defined(MACOSX) - void testInsertDeletePage(); void testRegisterCallback(); void testPostKeyEvent(); void testPostMouseEvent(); @@ -59,11 +58,12 @@ public: void testSearchAllSelections(); void testSearchAllNotifications(); void testSearchAllFollowedBySearch(); + void testInsertDeletePage(); + void testInsertTable(); #endif CPPUNIT_TEST_SUITE(SdTiledRenderingTest); #if !defined(_WIN32) && !defined(MACOSX) - CPPUNIT_TEST(testInsertDeletePage); CPPUNIT_TEST(testRegisterCallback); CPPUNIT_TEST(testPostKeyEvent); CPPUNIT_TEST(testPostMouseEvent); @@ -75,7 +75,8 @@ public: CPPUNIT_TEST(testSearchAll); CPPUNIT_TEST(testSearchAllSelections); CPPUNIT_TEST(testSearchAllNotifications); - CPPUNIT_TEST(testSearchAllFollowedBySearch); + CPPUNIT_TEST(testInsertDeletePage); + CPPUNIT_TEST(testInsertTable); #endif CPPUNIT_TEST_SUITE_END(); @@ -628,6 +629,36 @@ void SdTiledRenderingTest::testInsertDeletePage() comphelper::LibreOfficeKit::setActive(false); } +void SdTiledRenderingTest::testInsertTable() +{ + comphelper::LibreOfficeKit::setActive(); + SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); + + uno::Sequence<beans::PropertyValue> aArgs(comphelper::InitPropertySequence( + { + {"Rows", uno::makeAny(3)}, + {"Columns", uno::makeAny(5)} + } + )); + + comphelper::dispatchCommand(".uno:InsertTable", aArgs); + Scheduler::ProcessEventsToIdle(); + + // get the table + sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + SdPage* pActualPage = pViewShell->GetActualPage(); + SdrObject* pObject = pActualPage->GetObj(1); + CPPUNIT_ASSERT(pObject); + + // check that the table is not in the top left corner + Point aPos(pObject->GetRelativePos()); + + CPPUNIT_ASSERT(aPos.X() != 0); + CPPUNIT_ASSERT(aPos.Y() != 0); + + comphelper::LibreOfficeKit::setActive(false); +} + #endif CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest); commit ee246512cb0103f22f8afc0de245ea7f82143776 Author: Jan Holesovsky <ke...@collabora.com> Date: Thu Mar 31 12:26:54 2016 +0200 sd lok bccu#1525: Don't rely on the window size in the LOK case. Otherwise the table is inserted in the top left corner. Change-Id: Ia5d7099d4bace6f18cd7e8d3409427119240b756 diff --git a/sd/source/ui/table/tablefunction.cxx b/sd/source/ui/table/tablefunction.cxx index 4d20312..fd58cd4 100644 --- a/sd/source/ui/table/tablefunction.cxx +++ b/sd/source/ui/table/tablefunction.cxx @@ -23,6 +23,7 @@ #include <com/sun/star/awt/KeyModifier.hpp> #include <com/sun/star/lang/XInitialization.hpp> +#include <comphelper/lok.hxx> #include <cppuhelper/basemutex.hxx> #include <vcl/svapp.hxx> @@ -149,16 +150,25 @@ void DrawViewShell::FuTable(SfxRequest& rReq) Size aSize( 14100, 2000 ); Point aPos; - Rectangle aWinRect(aPos, GetActiveWindow()->GetOutputSizePixel() ); + Rectangle aWinRect(aPos, GetActiveWindow()->GetOutputSizePixel()); aWinRect = GetActiveWindow()->PixelToLogic(aWinRect); // make sure that the default size of the table fits on the paper and is inside the viewing area. // if zoomed in close, don't make the table bigger than the viewing window. Size aMaxSize = getCurrentPage()->GetSize(); - if( aMaxSize.Height() > aWinRect.getHeight() ) - aMaxSize.setHeight( aWinRect.getHeight() ); - if( aMaxSize.Width() > aWinRect.getWidth() ) - aMaxSize.setWidth( aWinRect.getWidth() ); + + if (comphelper::LibreOfficeKit::isActive()) + { + // aWinRect is nonsensical in the LOK case + aWinRect = Rectangle(aPos, aMaxSize); + } + else + { + if( aMaxSize.Height() > aWinRect.getHeight() ) + aMaxSize.setHeight( aWinRect.getHeight() ); + if( aMaxSize.Width() > aWinRect.getWidth() ) + aMaxSize.setWidth( aWinRect.getWidth() ); + } if( aSize.Width() > aMaxSize.getWidth() ) aSize.setWidth( aMaxSize.getWidth() ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits