[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3' - editeng/source sd/qa

Tamás Zolnai tamas.zolnai at collabora.com
Mon Feb 26 11:30:06 UTC 2018


 editeng/source/editeng/impedit.cxx                      |    3 +
 sd/qa/unit/tiledrendering/data/cut_selection_change.odp |binary
 sd/qa/unit/tiledrendering/tiledrendering.cxx            |   42 ++++++++++++++++
 3 files changed, 45 insertions(+)

New commits:
commit ec2b7cc3651e727d2d932edf2dac8c1d881279ac
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date:   Mon Feb 26 05:37:44 2018 +0100

    sd lok: Delete selection highlight after cutting text.
    
    Call drawing also after the new selection is set, similar to
    other cases where DrawSelectionXOR() is called before and after
    selection change.
    In desktop LO drawing is always called again and again by timeout,
    so there the selection is updated anyway, while in LO online painting
    does not emit a notification.
    
    Reviewed-on: https://gerrit.libreoffice.org/50268
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 56629f9797fa1cf8b7c86b93ee2ea62673444c94)
    
    Remove accidently committed debug lines
    
    (cherry picked from commit c64f2d34c0e62ec288b2e1453bf91f9f650db845)
    
    Change-Id: Id083a3bb38ba89e00239e71387377691afd4f31c
    Reviewed-on: https://gerrit.libreoffice.org/50335
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index eec47351b8e9..644317c4509a 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -1424,6 +1424,9 @@ void ImpEditView::DeleteSelected()
     pEditEngine->pImpEditEngine->UndoActionEnd( EDITUNDO_DELETE );
 
     SetEditSelection( EditSelection( aPaM, aPaM ) );
+
+    DrawSelection();
+
     pEditEngine->pImpEditEngine->FormatAndUpdate( GetEditViewPtr() );
     ShowCursor( DoAutoScroll(), true );
 }
diff --git a/sd/qa/unit/tiledrendering/data/cut_selection_change.odp b/sd/qa/unit/tiledrendering/data/cut_selection_change.odp
new file mode 100644
index 000000000000..19d3a18480e2
Binary files /dev/null and b/sd/qa/unit/tiledrendering/data/cut_selection_change.odp differ
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index f2372fc711a7..73e1e2e629bc 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -104,6 +104,7 @@ public:
     void testDefaultView();
     void testIMESupport();
     void testPasteTextOnSlide();
+    void testCutSelectionChange();
 
     CPPUNIT_TEST_SUITE(SdTiledRenderingTest);
     CPPUNIT_TEST(testRegisterCallback);
@@ -146,6 +147,7 @@ public:
     CPPUNIT_TEST(testDefaultView);
     CPPUNIT_TEST(testIMESupport);
     CPPUNIT_TEST(testPasteTextOnSlide);
+    CPPUNIT_TEST(testCutSelectionChange);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -2034,6 +2036,46 @@ void SdTiledRenderingTest::testPasteTextOnSlide()
     comphelper::LibreOfficeKit::setActive(false);
 }
 
+void SdTiledRenderingTest::testCutSelectionChange()
+{
+    // Load the document.
+    comphelper::LibreOfficeKit::setActive();
+    SdXImpressDocument* pXImpressDocument = createDoc("cut_selection_change.odp");
+    CPPUNIT_ASSERT(pXImpressDocument);
+
+    sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+    pViewShell->GetViewShellBase().registerLibreOfficeKitViewCallback(&SdTiledRenderingTest::callback, this);
+    Scheduler::ProcessEventsToIdle();
+
+    // Select first text object
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB);
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB);
+    Scheduler::ProcessEventsToIdle();
+
+    // step into text editing
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, '1', 0);
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, '1', 0);
+    Scheduler::ProcessEventsToIdle();
+
+    // select some text
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_LEFT | KEY_SHIFT);
+    pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_LEFT | KEY_SHIFT);
+    Scheduler::ProcessEventsToIdle();
+
+    // Check that we have a selection before cutting
+    CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(1), m_aSelection.size());
+
+    // Cut the selected text
+    comphelper::dispatchCommand(".uno:Cut", uno::Sequence<beans::PropertyValue>());
+    Scheduler::ProcessEventsToIdle();
+
+    // Selection is removed
+    CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(0), m_aSelection.size());
+    comphelper::LibreOfficeKit::setActive(false);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();


More information about the Libreoffice-commits mailing list