summaryrefslogtreecommitdiff
path: root/svx
AgeCommit message (Collapse)Author
2022-03-28Notebookbar style previews: use CJK or CTL fonts if neededSzymon Kłos
Change-Id: I4757cf7af16a11895ec0c6e71257f2b4f02cda68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132159 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com>
2022-03-15Sidebarparagraph: Replace generic idscp-21.06.21-1Pedro Pinto Silva
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com> Change-Id: Ic6f0195c272f0442dc96cfff0321e15461f8bbc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131592 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2022-03-14svx: don't remove object right after insertionSzymon Kłos
This is regression from: commit 2d95b3846eac367d2baadc194ab258dc31e7bd33 Author: Tomaz Vajngerl <tomaz.vajngerl@collabora.co.uk> Date: Thu Oct 7 16:48:46 2021 +0200 svx: Don't end text edit mode for all views It was visible with "direct insertion" where user doesn't need to draw anything but textbox is inserted in the center of a screen (eg. used in LOK case) Object was inserted into a view and right after that was removed when EndTextEditCurrentView was called Change-Id: I9943d46746aabadf96d76d6e74770b56d648b79d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131263 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com>
2022-03-14lok: insert textbox directly in CalcSzymon Kłos
Change-Id: I3ae00b255dfbaa34ab8d973356d12dfd0f71d345 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131267 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com>
2022-03-11lokCalcRTL: chart-edit: no bounding boxDennis Francis
Fix for selections(svx-marks) similar to the fix for chart edit mode tile painting ``` 4fd2a14c6ee68f0574766ec7ec3dca35debe9d20 lokCalcRTL: global RTL: fix chart edit mode rendering ``` Change-Id: I2b5a2af7023b09254b8471b750122bec10126bde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131091 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2022-03-01svx: the SdrObject of SvxGraphicObject can be nullptrMiklos Vajna
Crashreport: Graphic::GetType() const vcl/inc/impgraph.hxx:122 SvxGraphicObject::getPropertyValueImpl(rtl::OUString const&, SfxItemPropertySimpleEntry const*, com::sun::star::uno::Any&) svx/source/unodraw/unoshap2.cxx:1466 (discriminator 1) SvxShape::_getPropertyValue(rtl::OUString const&) svx/source/unodraw/unoshape.cxx:1747 non-virtual thunk to SvxShape::getPropertyValue(rtl::OUString const&) svx/source/unodraw/unoshape.cxx:1732 During SVG export of a selected shape. Change-Id: I29b56d49b0c5418dfe8fec8491ac8667e5ade2ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130740 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2022-02-25tdf#72776 Allow text removal in the shapesSzymon Kłos
Previous fix had crafted condition for fixing one specific case but it was braking other cases. (svx/source/unodraw/unoshtxt.cxx) For example it was not possible to remove text inside textbox and save that -> it was not saved in LOK case. Problem is that we had not saved text inside shape and due to calling GetBackgroundTextForwarder() we did reset to empty content. In this patch we force UpdateData() call by releasing lock just before we try to do some final text cursor operations what applies changes in the content and prevents us from losing it. Call which was invoking GetBackgroundTextForwarder() was: file: xmloff/source/draw/ximpshap.cxx method: SdXMLShapeContext::endFastElement line: mxCursor->gotoEnd( false ); After that I found that we had bug which breaks test: sd/qa/unit/import-tests.cxx odp/shapes-test.odp It occurs when using this patch or when not using my code but removing locking functionality for SvxTextEditSourceImpl. NbcSetOutlinerParaObjectForText triggers shape resizing even when no text is present inside. Summary: 1. revert hack from https://git.libreoffice.org/core/+/71b66b0039819f38c935b4eb5d5951ceaf6e8468%5E%21 2. trigger text update by releasing lock for a moment to keep correct state 3. fix bug with resizing empty shape Change-Id: Idf1fc6caf19dfb932ce7caa21034f76fa04ce5f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130415 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com>
2022-02-24Make accessibility check dialog asyncNickWingate
Signed-off-by: NickWingate <nick.wingate@collabora.com> Change-Id: I88913b3d7e580a1d8c69a39454f2598e11ba43ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130438 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2022-02-11svx: fix dynamic cast SdrViewHenry Castro
Jan 19 13:48:41 ip-172-31-35-149 coolwsd[23647]: SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/collabora/online-buildscripts/staging/builddir/libreoffice/svx/source/sdr/contact/objectcontactofpageview.cxx:353:57 in Jan 19 13:48:41 ip-172-31-35-149 coolwsd[23647]: /home/collabora/online-buildscripts/staging/builddir/libreoffice/include/svx/svdview.hxx:235:65: runtime error: member access within address 0x61c000489880 which does not point to an object of type 'SdrView' Jan 19 13:48:41 ip-172-31-35-149 coolwsd[23647]: 0x61c000489880: note: object is of type 'SdrPaintView' Jan 19 13:48:41 ip-172-31-35-149 coolwsd[23647]: 7c 04 80 3b 90 58 b9 3d 60 7f 00 00 30 51 96 0a 20 60 00 00 38 51 96 0a 20 60 00 00 38 51 96 0a Jan 19 13:48:41 ip-172-31-35-149 coolwsd[23647]: ^~~~~~~~~~~~~~~~~~~~~~~ Jan 19 13:48:41 ip-172-31-35-149 coolwsd[23647]: vptr for 'SdrPaintView' Change-Id: Ifc9177902ac834d400d6bf9f72b94e82f544b348 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129789 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Henry Castro <hcastro@collabora.com>
2022-01-31support for the WebP image format (tdf#114532)Luboš Luňák
This commit implements a WebP reader and writer for both lossless and lossy WebP, export dialog options for selecting lossless/lossy and quality for lossy, and various internal support for the format. Since writing WebP to e.g. ODT documents would make those images unreadable by previous versions with no WebP support, support for that is explicitly disabled in GraphicFilter, to be enabled somewhen later. Change-Id: I9b10f6da6faa78a0bb74415a92e9f163c14685f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128978 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-01-26lok: fix regression "WeldEditView::DoPaint" for dialog tunnelingHenry Castro
Change-Id: I1cb345b3911d03dc90acef2a17705d654a06deb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128622 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2022-01-20lok: Set pasted text rect pos to 0, 0Mert Tumer
Rect size change according to the length of the text however, this can make the text inserted in the negative coordinates and half of it becomes invisible. Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Change-Id: Ibd4e6164c21088205efecf024c1888c55ac33f0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128603 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2022-01-18set active element to -1 when no selection for fontnameboxMert Tumer
FontNameBox sets the currentVal to emptystring when there's a mixed font-name selection on the text but does not update the active_element which is incorrect whereas other comboboxes such as FontSize does it correctly. Signed-off-by: Mert Tumer <mert.tumer@collabora.com> Change-Id: Iff86bba64c2ab564ff5c5fa979eb846af9651a11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128551 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2022-01-17svx-lok: incomplete invalidation when resizing/deleting...cp-21.06.13-1Dennis Francis
shapes in writer. The problematic commit is 5e37acbaaa0b0891829907331ecacd2d3b67526d lokCalcRTL: shapes: do not send negative(X) invalidations The above change forced the lok mode to use the second branch hence avoid the view-transformation based invalidation. This patch restores the old branching condition, but do the negation of invalidation rectangle in case of lok-calc-rtl mode(IsNegativeX). Change-Id: I679473f0610d2edabeb6071edbb32a63a436d053 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128491 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2022-01-11lokCalcRTL: fix editing of shape textDennis Francis
Inform editeng that negated document x coordinates are used in this case and ensure that editeng generated invalidation rectangles always have positive X coordinates. Change-Id: I2e450707ce02f7bcd8e4d299f857c37ebbd5e2c6
2022-01-11lokCalcRTL: shapes: negate mouse-event x coordinateDennis Francis
Change-Id: I153334940b41859e6fd9dee64217925627f0f292
2022-01-11lokCalcRTL: shapes: do not send negative(X) invalidationsDennis Francis
LOK client expects tile invalidations in positive document coordinates irrespective of RTL flags. For this introduce a flag mbNegativeX in svx class SdrMarkView to indicate the case when all x coordinates are negated (this happens only for the LOK + Calc + RTL mode). Use this flag to counter negate the x coordinates before sending invalidation rectangles. Change-Id: I35d8142718b538e55b668a8ee18f3dd1fe433951
2022-01-11lokCalcRTL: ensure +ve X coords in shape handles/selections msgsDennis Francis
LOK client expects all coordinates to be in +ve document coordinates, so negate the negative X coordinates of LOK RTL shapes before sending the selection/handles messages. Change-Id: I683581370c5b115efbe315224d6218ec2e74c7f1
2022-01-05Set the original size in crop dialog to preferred DPI calc. sizeTomaž Vajngerl
If we have the document setting preferred image size set, then use that as the default DPI and recalcualte the logical image size using the DPI and the size in pixels. This is useful so we have the preferred DPI size as 100% in the crop dialog, so we can adjust the size in relation to that value. This adds to SfxTabPage a new member maAdditionalProperties, to make it easier to transfer additional properties into a tab page. This is then used to transfer the preferred DPI into the tab page, which was previously done by user data, which is less than ideal and always doesn't work. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127096 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit e34067483ef78c1569641becfe99b79a97600aed) Change-Id: I50806f194032e228ee2cf56a39e5735a57358d46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127240 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-01-05Add graphic size checker for the preferred document DPITomaž Vajngerl
This change adds a graphic size checker, which checks all the images in the document, if they largely differ (outside of 50% and 110% of the image size) from the set preferred image DPI document setting. For all images that don't fall under this bounds, list them in the dialog and offer the posibility to select/goto the image and pop-up the properties dialog for the image to change its size. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127094 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 046e6cfa544d2ffd67fd29ba7dde41b495744618) Change-Id: I06efce77c291fdb6ec3864d72c2f4d15dba9c42b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127239 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-12-22Update styles previews in IdleSzymon Kłos
This helps with performance when we do series of actions updating styles. In that case we will only request update. When we will reach idle state we will do it only one time. What removes unnecessary updates in the meantime. Change-Id: I9fc59992833a6cf98c42571c1189b3c5d49ba5a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126840 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-12-03svx: fix crash in ViewContact::ActionChanged()Miklos Vajna
Crashreport: sdr::contact::ViewContact::ActionChanged() svx/source/sdr/contact/viewcontact.cxx:197 (discriminator 2) SdrTextObj::NbcSetOutlinerParaObjectForText(std::unique_ptr<OutlinerParaObject, std::default_delete<OutlinerParaObject> >, SdrText*) svx/source/svdraw/svdotext.cxx:1379 sdr::properties::TextProperties::ItemSetChanged(SfxItemSet const&) /usr/include/c++/10/bits/unique_ptr.h:360 sdr::properties::RectangleProperties::ItemSetChanged(SfxItemSet const&) svx/source/sdr/properties/rectangleproperties.cxx:54 Change-Id: I82de3e849cef33d207c8fd5e1c225de78d5f8705 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126277 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-10-22svx: Don't end text edit mode for all viewsTomaž Vajngerl
This allows multiple views to not disturb each other editing inside a impress document. With the ending of text edit for all views still enabled, one view can cancel other views text editing just by moving or resizing a unrelated shape in the document. To make this possible we also need a view-local undo manager for the text edit mode, which is independent of the document undo manager. When the text edit mode ends, all the changes will be added as one change to the document undo stack. This prevents any conflicts in the undo stack that could be made when 2 views are editing the same document at the same time. This also adds the test for the new use case and changes the existing tests to reflect the change. Change-Id: I04edb4f91d7e111a490c946f7121cbca75f818d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123220 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit c175c1dc19d0edc8ca66e39f0b4b8af04e3d6c87) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123951
2021-10-22tdf#140022 sd: fix inteaction between multi-col shape text and automatic heightMiklos Vajna
Multi-column shape text works by assuming a fixed height, then flowing content to a next column once the current one is full. Automatic height works by first laying out the text and then resizing the shape to have a matching height. When both are enabled, then we used to first calculate the automatic height and then lay out the multi-col text using that height. PowerPoint takes the height from the file format and lays out the multi-col text using that fixed height, and only editing modifies the automatic height. Fix the problem by not updating the automatic height when we have multiple columns, this is meant to improve the stability of the layout anyway. Manual testing shows that editing the text on the UI still updates the automatic height, as probably expected. Based on Mike Kaganski's research - thanks! :-) Change-Id: Iaf46c6008018b4bf26310322f25788a49c1d27f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124048 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 7e74c6cf8d0a56cc061f48e1c6f397d393165220) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124062 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-10-21svx: add "m" prefix to some member variables in SdrObjEditViewTomaž Vajngerl
Change-Id: I2877f63d97ff6d15f08bd2dbaee6128b8a689cc5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123219 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 93115d2c54d645bcf2f80fde325e3ede39dee4d5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123950 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-10-05lok: fix crash on chart doubleclick in patchPaintWindowSzymon Kłos
backtrace: SdrPageWindow::patchPaintWindow(SdrPaintWindow&) (this=0x0, rPaintWindow=...) at svx/source/svdraw/sdrpagewindow.cxx:168 SdXImpressDocument::paintTile(VirtualDevice&, int, int, int, int, long, long) (this=0x64589d0, rDevice=..., nOutputWidth=180, nOutputHeight=135, nTilePosX=0, nTilePosY=0, nTileWidth=15875, nTileHeight=11906) at sd/source/ui/unoidl/unomodel.cxx:2240 Change-Id: Ie5270c3cc4a40121485d5da756a498ec4fd8bf80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123044 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-10-05Related: tdf#144139 use the classic size calculationCaolán McNamara
Change-Id: Iac3f9fb9fd6f92f8b17b1f2822dbc9743528cea9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122801 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-09-30Resolves: tdf#144139 checkboxs in print output shouldn't be themedCaolán McNamara
this will avoid the crash under gtk Change-Id: Ibbde5d64595d2fec1fa63756d628cf295dcdbb78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122793 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-09-30tdf#142415 mouse events not propogated to table control event handlersCaolán McNamara
handle this with explicit callbacks from the cell widget for those events Change-Id: Ie605ca4286afc0fbd321f339fb7963771a303df5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122072 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-09-30Resolves: tdf#144376 focus into protected ScTextWnd shouldn't be possibleCaolán McNamara
the expectations are that this isn't possible and if it happens then under windows there is a QueryCharPosition which will trigger the deletion of the ScTextWnd EditView due to that expectation before it is then unconditionally dereferenced Change-Id: Ied5d8031ae7d74669a2958dbcdec87843a26d384 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121841 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-29Related: tdf#144091 svx: fix interaction of transp cell fill and transp shadowMiklos Vajna
This is a follow-up to commit 37a52d30bbfcf1d073779b50139c4dafa507be4b (tdf#144091 svx: fix unwanted blur of shadow from table cell fill, 2021-09-20), where it turned out that the original bugdoc was just a special case of almost full transparency (80%), that's why avoiding the blur fixed the problem. A more general approach instead is to multiply the alpha or the cell fill of table shapes and the alpha of the shadow itself. The end result is the same (80% transparency) for the first bugdoc, but this gives back the blur on the second bugdoc. (cherry picked from commit 00fa364a2403dc23a786d3f91fde06e10b3a4a9a) Conflicts: drawinglayer/source/primitive2d/shadowprimitive2d.cxx drawinglayer/source/processor2d/vclpixelprocessor2d.cxx include/drawinglayer/primitive2d/BufferedDecompositionPrimitive2D.hxx svx/source/sdr/primitive2d/sdrdecompositiontools.cxx svx/source/table/viewcontactoftableobj.cxx Change-Id: I63560e3a73473c70157ecee8365ec7154217f269 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122680 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122802 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-28tdf#144091 svx: fix unwanted blur of shadow from table cell fillMiklos Vajna
Initial render support for shadows of table shapes were added in commit a75bf43a8d6c5dec6dcc86908c142ceec541aa8c (tdf#129961 svx: add rendering for table shadow as direct format, 2020-12-02). That already noticed a trick with the shadow of table shapes: the shadow is generate from the cell fill and the border, but not from the text. An additional trick is that when blur is enabled for the table shape's shadow, then only the border should be blurred, not the cell fill. In the bug document's case, the effective cell background was gray, with a semi-transparent red shadow. We used to render cc0000 with blur and cccccc without blur, now we correctly render cca3a3, matching PowerPoint. (cherry picked from commit 37a52d30bbfcf1d073779b50139c4dafa507be4b) Conflicts: drawinglayer/source/primitive2d/shadowprimitive2d.cxx drawinglayer/source/tools/primitive2dxmldump.cxx include/drawinglayer/primitive2d/BufferedDecompositionPrimitive2D.hxx Change-Id: I7326a5f6254cf19b2d05181084c78e734ff7a7b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122383 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122760 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-23svx: improve SdrObjEditView::DisposeUndoManager()Miklos Vajna
Addresses the comment at <https://gerrit.libreoffice.org/c/core/+/122151/1/svx/source/svdraw/svdedxv.cxx#2765>, i.e. there can be the case when the undo manager is not an sw::UndoManager (or any other high level undo manager), but it's an EditUndoManager, and in that case we should not clear away the owning pointer to avoid a memory leak. (cherry picked from commit 4cf51357b75c254e7962dd86140c69474fff129f) Change-Id: I016cfad0563814d65c8523999c82be7747377171 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122509 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-20sw: fix undo manager de-registration from editeng on shutdownMiklos Vajna
editeng/ asserts in the ImpEditEngine dtor that the undo manager it owns is indeed an EditUndoManager, and not a subclass. This means that if a subclass is set as the undo manager of editeng, then SetUndoManager() should be called in pairs: once to set it and once to unset it. The unset should happen before destroying the EditEngine. This normally works because SwView either has an active text edit and then its dtor calls SdrEndTextEdit() or it doesn't have an active text edit. The broken case was when the text edit was already ended, but the draw view still had a text edit outliner, which has an EditEngine, which knows the sw undo manager. The product build deleted the sw undo manager when deleting the EditEngine, and then later when the SwExtTextInput dtor wanted to access the sw undo manager, it crashes due to use-after-free. Fix the problem by explicitly disposing the undo manager of the draw view in the dtor of SwView. Also fix a couple of more places where an SdrObject* is returned and we didn't check if the result is a nullptr. Caught by the loolstress tool in online.git: cp test/data/hello-world.odt /tmp/test.odt ./loolstress ws://localhost:9980 /tmp/test.odt test/traces/writer-hello-shape.txt /tmp/test.odt test/traces/writer-hello-shape.txt /tmp/test.odt test/traces/writer-hello-shape.txt /tmp/test.odt test/traces/writer-mash-text-table.txt /tmp/test.odt test/traces/writer-mash-text-table.txt (cherry picked from commit 2bf269745bed9fefe32122fc432e239949bdf605) Change-Id: Ib838b2adf900b4f3bec63d2d62d432327bc0c6c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122151 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-16improve LOK notifyInvalidationNoel Grandin
(*) tweak buffer in SfxLokHelper::notifyInvalidation to be a bit larger, so we avoid the cost of a resize&copy (*) use our optimised OString concatentation instead of going via std::stringstream (*) pass down a pointer to rectangle, instead of a string. later we will use this to avoid doing the stringify until later Change-Id: Ia3e3042bc919d9b9cb80e47a93704eb236438605 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119994 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120072 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 417f881d20cafe88a02b64894ba4483875fb9460) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122123
2021-09-14svx: GetMarkedObjectByIndex() may return nullptrMiklos Vajna
Seen in this crash: #6 SdrMarkView::ImpIsFrameHandles() const (this=this@entry=0x7f5a310) at svx/source/svdraw/svdmrkv.cxx:594 #7 0x00007f9779c71058 in SdrMarkView::HasMarkablePoints() const (this=0x7f5a310) at svx/source/svdraw/svdmrkv1.cxx:32 #8 0x00007f9779d0c142 in SdrView::GetContext() const (this=0x7f5a310) at svx/source/svdraw/svdview.cxx:1297 #9 0x00007f976185adf4 in SwWrtShell::GetSelectionType() const (this=this@entry=0x7f32d90) at sw/source/uibase/wrtsh/wrtsh1.cxx:1424 #10 0x00007f9760e3d5b9 in SwCursorShell::sendLOKCursorUpdates() (this=this@entry=0x7f32d90) at sw/source/core/crsr/crsrsh.cxx:2055 #11 0x00007f9760e4046b in SwCursorShell::UpdateCursor(unsigned short, bool) (this=this@entry=0x7f32d90, eFlags=eFlags@entry=6, bIdleEnd=bIdleEnd@entry=false) at sw/source/core/crsr/crsrsh.cxx:2041 #12 0x00007f9760e41747 in SwCursorShell::EndAction(bool) (this=0x7f32d90, bIdleEnd=bIdleEnd@entry=false) at sw/source/core/crsr/crsrsh.cxx:276 #13 0x00007f976105865a in SwEditShell::EndAllAction() (this=this@entry=0x7e98ed0) at sw/source/core/edit/edws.cxx:102 #14 0x00007f976109f8ed in SwFEShell::DelSelectedObj() (this=0x7e98ed0) at sw/source/core/frmedt/feshview.cxx:2295 #15 0x00007f976184a447 in SwWrtShell::DelRight() (this=this@entry=0x7e98ed0) at sw/source/uibase/wrtsh/delete.cxx:442 #16 0x00007f9761680d6b in SwEditWin::Command(CommandEvent const&) (this=0x7e9ba10, rCEvt=...) at sw/source/uibase/docvw/edtwin.cxx:5483 (cherry picked from commit 2e68bce7df95f386e5cbd5c1fd90c5baeedb9a66) Change-Id: I916be9ce846c8750acdaf5fc791e1adb3692e002 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122087 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-30tdf#139660 one of the group needs to be activeCaolán McNamara
in this case using ToolButtons instead of ToggleToolButtons will work ok Change-Id: I806a8fc409ae346dd6734be13d69c4b171e54c08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121123 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-08-24Resolves: tdf#139220 with ~1000 selected shapes a11y UpdateSelection crawlsCaolán McNamara
so fetch the selected shapes once and sort them for quick lookup in the loop over maVisibleChildren. As an side, not changed here, SvxShapeCollection::getByIndex looks suboptimal with a body of std::vector<Reference<uno::XInterface>> aElements(maShapeContainer.getElements()); return uno::makeAny(Reference<drawing::XShape>(aElements[Index].get())); Change-Id: Idec7c003e7c5ee02000d4642d4fdb0d940548d97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120584 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-08-16tdf#143769 don't crash on null XFillColorItemCaolán McNamara
use same solution as: commit 5ee0e6ab93ad791f5e79506efafd16cb7364ffb1 Author: Markus Mohrhard <markus.mohrhard@googlemail.com> Date: Tue Jul 21 19:01:26 2015 +0200 avoid crash with color listbox for now Change-Id: I36ac6513546961ec8d8d1e9437a8ef88574acbf4 Change-Id: I46c55461e5867431a6e9c838b5ef462f9581eb28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120248 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-08-16Resolves: tdf#143023 explicitly connect to ControlBase focus-[in/out]Caolán McNamara
instead of listening to the generic vcl::Window/Control focus events. The thing which really gets/loses focus is now a Widget hosted inside the ControlBase. also contains... fix comment Change-Id: Ia1783aff3fded7fd73de2b04b9aced647771a92c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119998 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> establish that DbCellControl Window member is always a ControlBase and remove resulting known redundant dynamic_casting Change-Id: I5f098ef1adee3ad5d2a2bc5fcd30523f980df2f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119999 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> EventWindow is always a svt::ControlBase update DataBrowser has-focus when child widget loses focus similar to tdf#135641 case, focus-out becomes an issue with the bibliography editor if focus-in is seen on clicking in a cell, then click in a GtkEntry and tab around in a circle. Without this lose-focus support focus will be grabbed back to the cell of the initial click on a circuit of the focus-cycle Change-Id: I36288ed21dc4357c077f8dee55b55abf2457c2a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111157 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 422a8c3218b484817a8723b57fe9845d6abb83f4) reportdesigner focus out handler clobbering the preexisting handler set by the databrowser, so chain one after the other Change-Id: I5aa16635031be425b9354e5a2d6b891a81d54e55 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111384 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 731f08e5a84817dbc3c6be6e670025d51f39cd61) Change-Id: I012d0bea687aa6d5965a4e2f6ce3899bfc629f1b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120006 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-08-16undo blocking emitting focus events during grab_focusCaolán McNamara
revert... commit f97dbac73fe149e8fed0932890d0c1d6be4869a3 Author: Caolán McNamara <caolanm@redhat.com> Date: Wed Jun 26 21:00:02 2019 +0100 infinite focus changing in toc biblio page which blocked calling focus-changed callbacks when grab_focus is called explicitly analogous to how we block value-changed callbacks setting values through code but don't block them when the value is changed by user interaction. In retrospect that was a poor choice, so revert that and subsequent workarounds in favour of just not calling gtk_grab_focus if the widget already has focus. checked: a) tdf#138427 focus set to wrong input box b) tdf#138078 only call GetFocus if we gained focus from an unfocused state c) tdf#137993 ensure the toplevel vcl::Window is activated d) tdf#136941 call focus in handler explicitly Change-Id: I411480e2d627aa9995fb41b0aa17e9fb6d34d73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114524 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit db1cf111666847ce5ce93d18ae5ae8c29a4c44d6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120079 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Caolán McNamara <caolanm@redhat.com>
2021-08-10tdf#142436 svx: fix handling of linked background imagesMiklos Vajna
Regression from commit 9fb7aaf570c03c8a26d763f1205fb8c890e8211a (Make linked graphic register into LinkedManager again, 2018-04-13), the problem was that now SvXMLImport::loadGraphicByURL() produces a Graphic that has its type set to GraphicType::Default, but when drawinglayer::primitive2d::createNewSdrFillGraphicAttribute() consumes this graphic, it expects that the type is either a bitmap or a metafile. Fix the problem by explicitly loading the image when the default-type, origin-url-set case happens: this is rendering, so no problem to load the URL and that will give us the expected graphic type. This is also meant to keep the original problem fixed, since the Graphic that is part of the doc model is unchanged. (cherry picked from commit c88ff9298b25132fc34102230cef0263f045a523) Conflicts: drawinglayer/source/tools/primitive2dxmldump.cxx Change-Id: If5bba09faa23ef35f99152d4b5d30cd9cf67ace8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120140 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120231 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-07-26Make Custom Color Picker dialog asyncSzymon Kłos
- now supports also XAsynchronousExecutableDialog - inherits from SfxDialogController to attach correct LOKNotifier Change-Id: Ic21db4057b8087d74a437b1c8ec95408ade5264d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119012 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-07-20Resolves: tdf#143372 Exclude {qtz} KeyID from SvxLanguageBox listEike Rathke
Change-Id: I3e52407a33f79713635063ff4ba374267eb98005 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119002 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit da13b76e07231131cb951868a314ee6f51c0f254) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118928 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-19lok: fix incorrect multi-view table selection updatesDennis Francis
Use the correct writer shell to fetch selected table info, else the active view's table selection data is sent to all views which is incorrect. Also avoid interference from draw empty table updates in SdrMarkView::SetMarkHandlesForLOKit() if we are in writer. [tml: In this branch, this commit also includes a fix from Miklos.] Change-Id: Iff8181a7d43712e3c9a23cee43a8b6b98ba032d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118000 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118941
2021-07-15jsdialog: sidebar: do relayouting not too oftenSzymon Kłos
To avoid jumping in Online avoid not needed relayouting. Change-Id: I4a59a9aa077de60ffd0486bb843fd2ce5b4174d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118936 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-07-12editengine-columns: tdf#143258 Fix handling rotated textMike Kaganski
This reverts modifications to existing unit tests made in commit d0a1616ccad0dd5f5a02c1b0204f537b57d0b4b5. My idea that those changes were required because of more correct calculations was wrong, and in fact they were caused by off-by-1 error in height calculations. Change-Id: Ib94878a911238c977c35a8f8e3e5694cedc79a89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118705 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118732 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-07-11return value of PixelToLogic ignoredCaolán McNamara
the other uses of SdrObjListPrimitiveHit operate in Logic Position Change-Id: Id6a834a17e6e2252bd4f58d10cd95f7425191203 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118615 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-07-11Related: tdf#143088 return early on notification from frozen editengineCaolán McNamara
processing EE_NOTIFY_PROCESSNOTIFICATIONS from an EditEngine with an UpdateMode mode of false will just to on to cause AccessibleTextHelper_Impl::GetTextForwarder to throw an exception as a Frozen EditEngine is considered Invalid so return early instead Change-Id: I86f9647b7bf839cf3c7cf2f029be8c7c5aeef1f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118071 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins
2021-07-09jsdialog: dont use popular id for glow colorSzymon Kłos
to avoid confusing it on updates Change-Id: I2b19dc41a17e070ac1c8869d478c3b0b09a54223 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118692 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>