Age | Commit message (Collapse) | Author |
|
Test that the cursor is placed correctly after deleting a section
that overlaps page boundaries
Change-Id: I466770c7edadf09f11260ede236e598d3d1a875b
Reviewed-on: https://gerrit.libreoffice.org/83963
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
|
|
As a follow-up to commit 28b77c89dfcafae82cf2a6d85731b643ff9290e5, add
IsSelectFrameAnchoredAtPara() function and use it to harmonize at-para
fly selection across all relevant operations:
* CopyImpl:
- it had a pre-existing bugs that would lose a fly anchored to the
2nd (1st fully selected) node of a redline
- remove a bunch of code for finding the last node of the body content,
which doesn't matter for the remaining at-fly checks
- flys that already existed at the insert position need to have their
anchors corrected
* DeleteRange:
- get rid of the bDelFwrd checks
* MoveRange:
- the ALLFLYS flag would be obsoleted by the new selection, were it
not for the writerfiler "special hack", see below
* also adapt A11y and UI selection, SwRootFrame::CalcFrameRects()
The selection behavior is changed:
* the bDelFwrd case is quite odd, some code was checking whether a
deletion was "forward" or "backward" and removing only the flys at the
point node while retaining the flys at the mark node; this worked in a
very non-obvious way relying on sw_GetJoinFlags actually calling
Exchange() on the cursor, and then SwUndoDelete stored it in
m_bJoinNext, but it turns out that only SwUndoMove also has a
m_bJoinNext and it's dead, and no other Undo has such a flag, so this
only worked for "delete". It's not obvious what the value of this is,
let's just ignore the "direction".
* Selections exclude the start and end position except if it's a fully
selected node or at the start or end of a section (i.e. Ctrl+A should
also select every at-para fly).
* An exception is made in case the selection looks like it's a
backspace/delete joining 2 paragraphs; flys are not deleted in that
case because it seemed annoying (and as it happens, Word does not
appear to delete flys in that case), particularly if both of the nodes
are already empty. This is done with a heuristic, it's conceivable to
pass down some flag from DelLeft()/DelRight() but probably this is
good enough.
A special hack is needed to keep writerfilter happy for now; it likes to
anchor flys at nodes which it then deletes in RemoveLastParagraph(),
which likely could be improved there. The ALLFLYS usage in
SwRangeRedline::MoveFromSection() could be removed (because the
end-of-section check already handles the case) except for this, because
it turns out that the ODF import runs SetRedlineFlags with a temporarily
reset IsInXMLImport() flag because of its effect in thints.cxx, so
during the move IsSelectFrameAnchoredAtPara() can't check it.
tdf#108124 scenario works better, now everything that's selected is both
copied and deleted.
Fixes the problem where an at-para fly at the 2nd node of a redline
where the 1st node is partially deleted was lost on ODF export.
Change-Id: I168013665e70ff0a5f198e09f3fa3afc06ba0449
Reviewed-on: https://gerrit.libreoffice.org/84576
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
|
|
Change-Id: I35b7235b7f53789d781a567efe15f13be16f7193
Reviewed-on: https://gerrit.libreoffice.org/83530
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I55972388b1f15dc86d309c5ffe998b44596b1cf2
Reviewed-on: https://gerrit.libreoffice.org/83351
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I041dfdaac4903d1bb0bb9ee70a2e5e705af3aafb
Reviewed-on: https://gerrit.libreoffice.org/83398
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: I82fe7ae4e9a564af27d1f080c0bf27e5aab17bfd
Reviewed-on: https://gerrit.libreoffice.org/83188
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
Change-Id: I390ac076136140f6aaa391212afeca49ebbd1dc3
Reviewed-on: https://gerrit.libreoffice.org/83355
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: Ic2ffd8f0418e208d7e17ac419a0ac7d98ffad30c
Reviewed-on: https://gerrit.libreoffice.org/83118
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I115e014cafb9c4a85558567ccd6cd2987cabdfd6
Reviewed-on: https://gerrit.libreoffice.org/82483
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: Icc0b22318406a92cf19843844e857d09dd9a4ba2
Reviewed-on: https://gerrit.libreoffice.org/82466
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
The changes caused several issues in the presenter console (mouse events delivered to wrong widgets).
Also it turned up that parent windows got the notification about mouse events from their children,
but the position was always relative to the top widget, so very unhelpful for the parent widgets.
Also I found out that there are XKeyHandler and XMouseClickHandler interfaces which
already do what I tried to do with the below commits (events get passed down to parent widgets, and they even can be marked as consumed).
So the original issue reported can be fixed by using XKeyHandler/XMouseClickHandler instead.
This reverts the following two commits:
* "Related tdf#122920 Treat UNO key events the same as mouse events" 9e0e97b716ab074d4558c76a62a66bf597f332a5
* "tdf#122920 Send UNO mouse events to parent window listeners as well" 6f43902b12dd36fa2b69401065df198ef9ffdb09
Change-Id: I005d22770a7a4db9588c5bc22197dc0ae526627e
Reviewed-on: https://gerrit.libreoffice.org/82423
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
Change-Id: I477e1129d7b8deb91920b3ffd715bc217e606d20
Reviewed-on: https://gerrit.libreoffice.org/80140
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
|
|
Change-Id: I72613afe607063663a2ae1d395c2cdf320b9c463
Reviewed-on: https://gerrit.libreoffice.org/78877
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
which removes the tab cross-platform
Change-Id: If2584cc75350fb0106f1a1f5190abb74b0ee0ccf
Reviewed-on: https://gerrit.libreoffice.org/78871
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Need to use a better null value for FillTransparenceGradient.
Use black-black which has equal effect than having no transparency at all.
XFillFloatTransparenceItem has also an enabled attribute, but it
can not be accessed via the UNO API. We can acces only the gradient object,
so with a better null value we can check whether the API attribute is
actually set or not.
Change-Id: I480489f588376582f80d5062145b7f398ef61ad7
Reviewed-on: https://gerrit.libreoffice.org/78657
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
|
|
Change-Id: If42ad34055bdd95d24a64d8d864c897fea459326
Reviewed-on: https://gerrit.libreoffice.org/76975
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
|
|
Change-Id: I2238961a7b124652e90e948e27a6ca9d98dc54ac
Reviewed-on: https://gerrit.libreoffice.org/76826
Tested-by: Jenkins
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
|
|
Change-Id: I389c9aaa5788bf26398e0639c0f11f9dfbe4e3da
Reviewed-on: https://gerrit.libreoffice.org/76374
Tested-by: Jenkins
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
|
|
not only check in the dialog crashes writer but also check if the
changes has an effect on the page itself and if the correct format
is used
trying also two non-latin formats
Change-Id: I71fd17c8ed50fd043187e1006223ef462f2a56e9
Reviewed-on: https://gerrit.libreoffice.org/76295
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Open a dialog, close it by the given button e.g. "cancel" or "close".
If the dialog has an enabled "OK" button open the dialog again
and try to close it also using the OK button.
For every dialog a complete new document is opened to ensure test-separation,
otherwise one action could hamper the next action.
For dialogs that already have other tests a "cancel/close" test was added to
the previous test. As far as possible opening new documents was avoided in those
cases. And in some cases a simple check was added to check if the "cancel" button
does not change anything.
Simmilar tests for calc have been renamed and code dublication has been
removed by moving main part of the code to a helper file
Change-Id: I01f197cae8bc6fe0345661fe042b655f16229485
Reviewed-on: https://gerrit.libreoffice.org/75124
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Use IsDestroyFrameAnchoredAtChar() to harmonize the at-char fly
selection across all relevant operations:
* CopyImpl: this is the most tricky one:
- the code in CopyWithFlyInFly() and CopyFlyInFlyImpl() is quite con-
voluted as it needs to do some things ignoring a partially selected
start node, while including it in other cases
- it had pre-existing bugs too that would lose a fly anchored to the
2nd (1st fully selected) node of a redline
- now it needs to copy the flys in the selection if it is inside a
single node
- another complication is that flys that already existed at the
insert position need to have their anchors corrected
- SwUndoInsLayFormat need to be created for the appropriate flys
- SwUndoInserts Undo/Redo needs to run the nested SwUndoInsLayFormat
at the appropriate time
- SwUndoInserts::UndoImpl() needs a special case to *never* delete
flys at the start/end of the selection because those are handled by
nested SwUndoInsLayFormat
- Insert File (shellio.cxx) needs adapting to the SwUndoInserts change
* DeleteRange: this just needs to delete the flys via DelFlyInRange()
* MoveRange:
- this is used by the old SwRangeRedline Show/Hide, i.e. on ODF export
- the SaveFlyInRange()/RestFlyInRange() was rather inadequate and
didn't even restore content indexes at all...
* IsShown: the sw_redlinehide code needs to check visibility against
the (inverted) extents
The selection behavior is changed so that at-char flys in the start and
end node of the selection are also selected, instead of having their
anchor moved to a different content index by the operation. This appears
more obvious and user-friendly, fixes tdf#110442, and is also more like
what Word does.
Selections exclude the start and end position except if it's a fully
selected node or at the start or end of a section (i.e. Ctrl+A should
also select every at-char fly).
A special hack is needed to keep writerfilter happy for now; it likes to
anchor flys at nodes which it then deletes in RemoveLastParagraph(),
which likely could be improved there (disposing the SwXParagraph runs
into the same problem...).
Crashes fixed by this:
tdf#117185
tdf#117215 except comment#12
tdf#124720
tdf#124721
tdf#124739
Previously fixed bugs tested:
i#97570 plus the 2 bugs that already have UITests
Change-Id: I4fec2a3c15ca0e64e5c4e99acfb04f59bb2bcf64
Reviewed-on: https://gerrit.libreoffice.org/75516
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
|
|
Change-Id: I8a64c5eb017f4b6d468d082925a5022cb75d549e
Reviewed-on: https://gerrit.libreoffice.org/75564
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Test if LibreOffice crashes when text is copied and pasted
overwriting the original content and then undoing and redoing
the change several times
Change-Id: I22d92bde02364675fbbbe8064065ae955bdcae24
Reviewed-on: https://gerrit.libreoffice.org/75485
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I2fd0661ad41fbc6feb420af5ab2d05d41c6d0838
Reviewed-on: https://gerrit.libreoffice.org/75462
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
|
|
Change-Id: I90300092b9f8aa4190acd05f41f3c7093a2229a3
Reviewed-on: https://gerrit.libreoffice.org/73907
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
See the discussion at <https://gerrit.libreoffice.org/#/c/70840/> this
test is quite unstable at the moment, unfortunately.
Change-Id: I6cbfdd0d9c5af8a848f32ab209ae70bc7a10d4af
Reviewed-on: https://gerrit.libreoffice.org/73557
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I194553a6afbcfc17e40ef28627a2806806b69289
Reviewed-on: https://gerrit.libreoffice.org/73409
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I430efba0bd995de0ed799c68555188bbb61f06af
Reviewed-on: https://gerrit.libreoffice.org/73279
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I85952c011e0f49e0fa8613910c993c919aa2b413
Reviewed-on: https://gerrit.libreoffice.org/73189
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: Ie931fbec18b6b32b1f0f817df0e8a8ca31ca415a
Reviewed-on: https://gerrit.libreoffice.org/72864
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
See <https://gerrit.libreoffice.org/#/c/67754/3> for discussion, the
stability of this test has to be improved before it can be enabled
again.
Change-Id: Iae7d16c7a6c3659de132e2d64ca43865081b3c9b
Reviewed-on: https://gerrit.libreoffice.org/72724
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
by sending the notifications to the parent windows as well
Change-Id: Ibb33f608d7b9c3871aadd0c13db32effd99fe698
Reviewed-on: https://gerrit.libreoffice.org/72675
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
Change-Id: If5cdfcfaa02fbd12ad502e366e09aaad387bcaff
Reviewed-on: https://gerrit.libreoffice.org/72478
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
(see <https://gerrit.libreoffice.org/#/c/72433/> "Temporarily disable broken
part of xwindow.py test")
Change-Id: I1c19e24d87971bb3a91f5ccea2f35ecf42f65028
Reviewed-on: https://gerrit.libreoffice.org/72477
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Apparently, at least for many builds there is am additional mouseExited/
mouseEntered event pair (making mouseEnteredEventsIntercepted = 2 and
mouseExitedEventsIntercepted = 1) initiated by the
xToolkitRobot.mousePress(xMouseEvent2)
when the mouse pointer moves from the "Standard" window to the "writer_edit"
sub-window. This needs further investigation.
Change-Id: Iecebdb8db2b0d0a051072ff1a20ac00e4dfcb06c
Reviewed-on: https://gerrit.libreoffice.org/72433
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...by waiting for all events to be processed before the listeners are removed
Change-Id: I1aa4f6c43de97a567877a499c4c8fb51ef53eeea
Reviewed-on: https://gerrit.libreoffice.org/72432
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I6872684292b4e7ef04f4c590012f1af25243f22f
Reviewed-on: https://gerrit.libreoffice.org/72426
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Event listeners are added once VCLXWindow::SetWindow is called.
This never happened for the document content window.
So we need to call Window::GetComponentInterface which will create an XWindowPeer
and then call UnoWrapper::SetWindowInterface which calls VCLXWindow::SetWindow.
After that, event listeners are registered so that we can deliver events.
Change-Id: I2ed01f1ab20d87fedc4803bdbd96f5ef14d40043
Reviewed-on: https://gerrit.libreoffice.org/71948
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
Change-Id: I81070b04bb1aefb3a8983cade701afd1b0392f3d
Reviewed-on: https://gerrit.libreoffice.org/72374
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I282f4f3a07fece65bd482c7664aedd44d5852a4e
Reviewed-on: https://gerrit.libreoffice.org/72378
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: Ia3ad578f72fa82f0693c7eef34a43261e4efb878
Reviewed-on: https://gerrit.libreoffice.org/72060
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: Ic2093aaea6e71559ba49e248f9afd5d86bcb0b67
Reviewed-on: https://gerrit.libreoffice.org/71949
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
https://bugs.documentfoundation.org/show_bug.cgi?id=123313#c9
Change-Id: Id72829984affbb1c4ce5bba4704e19a560260357
Reviewed-on: https://gerrit.libreoffice.org/71418
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Iec8dcde8090058d2d3c93c8eb7e9cbf32acd51e8
Reviewed-on: https://gerrit.libreoffice.org/71391
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Change-Id: I22431e026c1802e33064aa60267de0edbdf856ca
Reviewed-on: https://gerrit.libreoffice.org/71253
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
in a FOR loop, by removing the range(x,,)-like double
commas in this case, too, during program compilation.
Previous empty (missing) argument of RANGE was checked
by the terminating comma, but it can be a white space
after it, as in the following example:
FOR i IN RANGE COUNT 'letter' [ PRINT i ]
Change-Id: I67d0a4f089be06f30003d1b979b8f1801dbfa2e9
Reviewed-on: https://gerrit.libreoffice.org/71263
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
I faced the same problem in
https://cgit.freedesktop.org/libreoffice/contrib/dev-tools/commit/?id=f631db9e5e83706ed2678fb4db737700dd623a1b
Change-Id: I1adcc418e0efa7e77e1dda5b9dccd7c55cb5267f
Reviewed-on: https://gerrit.libreoffice.org/71280
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I71f479c00e47c277fe08329b4abd20dba8d68224
Reviewed-on: https://gerrit.libreoffice.org/70840
Tested-by: Jenkins
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
|
|
Follow-up fix for 6f43902b12dd36fa2b69401065df198ef9ffdb09
Also remove calling to super class (doesn't work and those methods return void anyway)
Change-Id: I1aa927e373e6d19e4060daba1f34ef72428ead59
Reviewed-on: https://gerrit.libreoffice.org/70878
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|
|
When user registers a mouse listener to a window, he expects
to receive mouse events when a user clicks in somewhere in that
window, even if it's technically a widget inside that window
Change-Id: Ie6d3f8b140e4a5b516051014282b43775ecec59e
Reviewed-on: https://gerrit.libreoffice.org/70512
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
|