summaryrefslogtreecommitdiff
path: root/include/vcl
AgeCommit message (Collapse)Author
2024-06-10tdf#152024 Diacritics cut off at top and bottom of paragraphJonathan Clark
This change fixes issues causing Writer to clip paragraphs at the ascent of the top line, and descent of the last line, of a paragraph. This issue caused certain diacritics to render incompletely, or not at all. Change-Id: I99a3a25335f8b1d798fc8a55ff42d5c78749fca4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168557 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-06-06the remaining Help::GetHelpText calls don't want their parent as fallbackCaolán McNamara
so we can drop the hierarchical search these probably do nothing in the absence of the classic help. fpicker case might benefit from moving some a11y translations out of help into core. Change-Id: I01b8d0c7cc1a1b3697d3332e330c6b4654e76af1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168507 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-06-05annot: improve PDF annotation export and clean-up PDFNote classTomaž Vajngerl
Add support for exporting more PDF annotation types and props. Prefix member variables in PDFNote class, extract it out of pdfwriter.hxx file into it's own header file. Change-Id: I99fb4cbb0c68fcec6585c9c21d81daaef26344cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168418 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-05-28tdf#160971 gtk: Don't select combobox text on entry selectionMichael Weghorn
In the same way that Change-Id: I17ce71198ec37cb1735194818bae17d1a5654d89 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon May 27 13:35:52 2024 +0200 tdf#160971 qt a11y: Don't select combobox text on entry selection together with Change-Id: Ia2c77245049d708885cbd374c20ce1892259329b Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon May 27 13:29:39 2024 +0200 tdf#160971 vcl a11y: Make combobox text selection mode style-able sets the style option to not select combobox text when switching between entries in an editable combobox for the Qt-based VCL plugins, do the same for the GTK-based VCL plugins, except for putting the text cursor at the beginning of the entry text instead of the end, as happens when using a native GtkComboBox (see tdf#160971 comment 11). Since the GTK-based VCL plugins use native GTK widgets in most places, the behavior for e.g. the "Font Name" combobox in Writer's Formatting toolbar is already like that without this change in place and is unaffected by this change (even though LO's gtk3 VCL plugin is using a custom combobox implementation, see vcl/uiconfig/ui/combobox.ui). However, the new behavior applies for combobox form controls, as can be seen e.g. with the sample doc attachment 194376 from tdf#160971. Change-Id: I5b17efaa167ab49d07f19b3649ff934cf0f34754 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168104 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-28tdf#160971 vcl a11y: Make combobox text selection mode style-ableMichael Weghorn
When selecting an entry of an editable combobox, the whole text of the text entry currently gets selected. That matches the behavior observed with a sample Windows Forms application. However, both native GTK and Qt applications behave differently and do not select the combobox entry text (s. tdf#160971 comment 11 and the referenced sample programs and screencasts). The extra text (un)selection makes the Orca screen reader on Linux announce an extra "selection deleted" every time another entry is selected using the up/down keys e.g. in the font selection combobox in Writer's Formatting toolbar when using the qt6 VCL plugin and the combobox popup is not shown. Introduce a new style setting to define the text selection behavior when switching between entries in a ComboBox and take that into account in `ComboBox::ImplSelectHdl`. The default behaviour remains unchanged. Behavior for the Qt and GTK based VCL plugins will be aligned more with the behavior of corresponding native widgets in separate upcoming commits. Change-Id: Ia2c77245049d708885cbd374c20ce1892259329b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168102 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-22tdf#124116 Correct Writer text shaping across formatting changesJonathan Clark
Previously, Writer performed shaping for each span of text separately. In certain situations, this caused incorrect glyph use, or incorrect glyph positioning. This change updates Writer so it will also consider neighboring text while performing shaping. This change resolves the outstanding duplicates filed against tdf#61444. As a side effect, this change also fixes tdf#134226. In addition to the shaping fix, this change implements rendering for individually-styled glyphs, which is required to fix tdf#71956. However, this change does not implement diacritic selection, which is also required for that issue. Change-Id: Iab4774ffaab5ad6113778c54d02cb260a70c1010 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167699 Reviewed-by: Jonathan Clark <jonathan@libreoffice.org> Tested-by: Jenkins
2024-05-19Resolves: tdf#157453 support FM_PROP_LINECOUNT for combobox dropdow rowsCaolán McNamara
Change-Id: I3d18ed505c2eea7305903f9a476c332db0148113 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167837 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-05-18lok: dump more SfxViewShell state, and LOK notifier state on Windows.Michael Meeks
This should help to associate the right view-ids, with the right windows, and help to catch any stray / lingering windows from closed sessions - hopefully. Change-Id: I197a3280d5d2aeddd356ee037c51e4887f43278b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167765 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 8d979fae0c435b820302c76fcfdc2642b4820360) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167684 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2024-05-18tdf#161154: pass "scaling is done externally" information down the stackMike Kaganski
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D does the scaling, taking into account the font scaling. Before commit 8557ea84c9336ba8061246f1f46ddb6e02f413a1, D2DWriteTextOutRenderer was doing own scaling in addition, but it seems that it somehow didn't affect the result much. The said commit removed the scalng from D2DWriteTextOutRenderer. As tdf#160901 demonstrated, the scaling is necessary in different code paths - and it turns out, that we need to know, if the caller does its own scaling or not, to make a decision, if the scaling should be fone in D2DWriteTextOutRenderer. This hack passes this from VclProcessor2D to D2DWriteTextOutRenderer through OutputDevice. Thanks to Miklos for the isea. I still don't understand, why all this seemingly doesn't affect other renderers. Change-Id: I001036f4574898b8e7606652525638df43c35240 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167786 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-05-17tdf#61444 Correct Writer text layout across formatting changesJonathan Clark
Previously, Writer performed text layout for each span of text separately. This caused incorrect kerning when the text style changed mid-word, for example by highlighting or changing the color of a single letter. This change updates Writer so it will also consider neighboring text while performing text layout. Change-Id: I511096c009343f39cc1b9ba745909c5b8cbad86f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167016 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-05-16VCL: Windows: more usecases for FlashWindow() API to inform on changesVasily Melenchuk
FlashWindow() can be used to bring user attention to application in background. Right now in LO it has implementation only for Windows. Here some new cases were added when flashing is used: * dialog window did open * document loaded * LO started Some redesign of previous solution is also performed: no manual search for top window, let's reuse existing code. Changed behavior for bringing LO window to foreground: it is made always and not depending on current value of NewDocumentHandling:ForceFocusAndToFront. It has no sense to tweak this behavior: if user clicks on document in file explorer, LO should came to foreground, no exceptions. Change-Id: I22b5b4e2b170cd25632083a55b3e9f0358bcae03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166615 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2024-05-14vcl: document and simplify PDFAnnotationMarkerTomaž Vajngerl
Change-Id: I0e03e5a009500144abcf9b35ca2224b60837872d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167568 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-05-13vcl: Merge ComboBox and ComboBox::ImplMichael Weghorn
This removes one level of indirection. `ComboBox::Impl` had originally been introduced in commit ece8699f8f22f6bae137c601bc29b83b75dc3bf3 Author: Michael Stahl <mstahl@redhat.com> Date: Fri Jul 10 12:05:48 2015 +0200 vcl: pImplify ComboBox The boost::signal stuff is quite heavy (33 kloc), so try to hide it from the header. Change-Id: I87826ccfd2a151aff274ffa6b7159a988f751808 , but all of the boost usage in here has been replaced since then. Change-Id: Ia8fb5cb895800edae104857c7713fa65e509a3c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167485 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-10loplugin:ostr in vclNoel Grandin
Change-Id: I5b6ee5bda0c5ff69d297f7f8e87d4c3f3d21791c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167470 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-05-07Sidebar: Direct update of FillStyleOliver Specht
FillStyle is directly updated to prevent deferred resize when additional controls are created. Change-Id: I48ed987971cf6c711af31d552e8d64fa9982a416 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165993 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-05-07tdf#160806 tdf#160837 gtk3 a11y: Drop VclEventId::ToolboxButtonStateChangedMichael Weghorn
Similar to how the previous Change-Id: I00e62016ced2fbb8796960671f5e58a3ceac4b29 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon May 6 14:44:36 2024 +0200 tdf#160806 tdf#160837 gtk3 a11y: Drop handling of some VclEventIds dropped handling for `VclEventId::WindowGetFocus` and `VclEventId::ObjectDying` in the gtk3 a11y bridge, do the same for `VclEventId::ToolboxButtonStateChanged`. And drop `VclEventId::ObjectDying` completely, as the gtk3 a11y bridge was the only place processing it. That event and the handling had been introduced in commit 3b40f502341272e989ae5266a1f8a03f2736449b Author: Ivo Hinkelmann <ihi@openoffice.org> Date: Tue Feb 5 11:30:51 2008 +0000 INTEGRATION: CWS fwk83_SRC680 (1.7.186); FILE MERGED 2008/01/30 12:40:39 obr 1.7.186.2: fix for fedora tinderbox (64bit) 2008/01/15 23:49:28 obr 1.7.186.1: #i70872# create wrapper for toolbox items that change state commit a1cbbd113da4ce3d5342d9ae5ff1c8d2137aa59c Author: Ivo Hinkelmann <ihi@openoffice.org> Date: Tue Feb 5 11:30:25 2008 +0000 INTEGRATION: CWS fwk83_SRC680 (1.51.160); FILE MERGED 2008/01/14 14:35:26 cd 1.51.160.1: #i70872# Added VCLEVENT_TOOLBOX_BUTTONCHANGED to notify accessibility implementation that an action happens to a toolbox button commit 3f1afd178875babe7ab79d22ab260221665bfb3f Author: Ivo Hinkelmann <ihi@openoffice.org> Date: Tue Feb 5 11:29:57 2008 +0000 INTEGRATION: CWS fwk83_SRC680 (1.2.262); FILE MERGED 2008/01/14 14:35:26 cd 1.2.262.1: #i70872# Added VCLEVENT_TOOLBOX_BUTTONCHANGED to notify accessibility implementation that an action happens to a toolbox button to ensure that an a11y object is created for toolbar buttons whose state changes, so that the corresponding a11y events are forwarded to the platform layer, see the referenced OOo bug #i70872# [1] for more details. This seems to be no longer necessary. By now, at least the scenario of toggling the bold/italics/underline status of text is announced just fine by Orca 46.1-1 on Debian testing with this change in place. (FWIW, tdf#123864 and the corresponding commits are more recent tickets/commits related to the topic.) Like for the above-mentioned change, dropping that handling addresses another case where the work window/root pane's a11y object when walking up the a11y hierarchy would be problematic, as it doesn't take into account the GtkWidget hierarchy. Sample backtrace of how the "problematic" a11y object was created (frame 1 below is the one where the a11y object with role root pane is created.) 1 atk_object_wrapper_new atkwrapper.cxx 983 0x7f620365672b 2 atk_object_wrapper_ref atkwrapper.cxx 948 0x7f62036560a0 3 atk_object_wrapper_new atkwrapper.cxx 1000 0x7f6203656952 4 atk_object_wrapper_ref atkwrapper.cxx 948 0x7f62036560a0 5 atk_object_wrapper_new atkwrapper.cxx 1000 0x7f6203656952 6 atk_object_wrapper_ref atkwrapper.cxx 948 0x7f62036560a0 7 atk_object_wrapper_new atkwrapper.cxx 1000 0x7f6203656952 8 atk_object_wrapper_ref atkwrapper.cxx 948 0x7f62036560a0 9 create_wrapper_for_child atkutil.cxx 359 0x7f620364c740 10 handle_toolbox_buttonchange atkutil.cxx 376 0x7f620364c1ef 11 WindowEventHandler atkutil.cxx 438 0x7f620364bd7f 12 Link<VclSimpleEvent&, void>::Call link.hxx 111 0x7f620dfd4ef8 13 VclEventListeners::Call vclevent.cxx 46 0x7f620dfd3f1a 14 Application::ImplCallEventListeners svapp.cxx 725 0x7f620df96b0d 15 vcl::Window::CallEventListeners event.cxx 225 0x7f620d59f6ee 16 ToolBox::SetItemState toolbox2.cxx 1197 0x7f620d6afd81 17 ToolBox::CheckItem toolbox.hxx 515 0x7f6214502c53 18 (anonymous namespace)::PopupMenuToolbarController::statusChanged popuptoolbarcontroller.cxx 180 0x7f621454205d 19 (anonymous namespace)::GenericPopupToolbarController::statusChanged popuptoolbarcontroller.cxx 373 0x7f6214540855 20 SfxDispatchController_Impl::addStatusListener unoctitm.cxx 797 0x7f6213090e95 21 SfxOfficeDispatch::addStatusListener unoctitm.cxx 279 0x7f6213090ade 22 svt::ToolboxController::bindListener toolboxcontroller.cxx 558 0x7f620fe9fbce 23 svt::ToolboxController::update toolboxcontroller.cxx 235 0x7f620fe9f207 24 framework::ToolBarManager::UpdateControllers toolbarmanager.cxx 726 0x7f62145b0f25 25 framework::ToolBarManager::AsyncUpdateControllersHdl toolbarmanager.cxx 2291 0x7f62145bdbfc 26 framework::ToolBarManager::LinkStubAsyncUpdateControllersHdl toolbarmanager.cxx 2278 0x7f62145aff9d 27 Link<Timer *, void>::Call link.hxx 111 0x7f620dfbc618 28 Timer::Invoke timer.cxx 75 0x7f620dfbc46c 29 Scheduler::CallbackTaskScheduling scheduler.cxx 509 0x7f620df5fa08 30 SalTimer::CallCallback saltimer.hxx 54 0x7f620368b566 31 sal_gtk_timeout_dispatch gtkdata.cxx 733 0x7f620368a573 32 ?? 0x7f62097110d9 33 ?? 0x7f6209714317 34 g_main_context_iteration 0x7f6209714930 35 GtkSalData::Yield gtkdata.cxx 405 0x7f62036888ef 36 GtkInstance::DoYield gtkinst.cxx 435 0x7f620368dd73 37 ImplYield svapp.cxx 378 0x7f620df94dfc 38 Application::Yield svapp.cxx 466 0x7f620df9470b 39 Application::Execute svapp.cxx 353 0x7f620df944a2 40 desktop::Desktop::Main app.cxx 1615 0x7f62171254fc 41 ImplSVMain svmain.cxx 229 0x7f620dfb760e 42 SVMain svmain.cxx 261 0x7f620dfb9659 43 soffice_main sofficemain.cxx 93 0x7f62171a7eb3 44 sal_main main.c 51 0x56162eceea5d 45 main main.c 49 0x56162eceea37 [1] https://bz.apache.org/ooo/show_bug.cgi?id=70872 Change-Id: I7409806071a00f32b201b08a831dc6941f072047 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167209 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-03jsdialog: support for LinkButton as an independent widgetTomaž Vajngerl
This adds support for the (weld)LinkButton (FixedHyperlink) as an independent widget and not part of FixedText to jsdialog. In addition add "click" event that triggers activate_link method. Change-Id: Id110b4a0fd60fc24592e00235243783d46ae4575 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166898 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-04-30tdf#160867: restore HTML map export for text hyperlinks in framesMike Kaganski
The most exciting was to discover that this functionality was actually already implemented prior to 2001, and then accidentally dropped, and nobody noticed, until Noel did his great cleanups, and made an amazing investigation in commit ed2ae3c3bb0a708cafc3de6a01adc9ddc43fb859 (remove dead SwNoteURL, 2018-03-14). The detailed commit message made my task so much easier: I knew where and what to restore. So this change restores relevant pieces removed over the time in commits * 1b666235f6b0b0f0b13f473bf3b639f4f5f0b12f (loplugin:singlevalfields improve copy constructor check, 2018-01-03), * be8c414567f49242164b1fdfb12764b16be355c1 (loplugin:unusedmethods also check for functions returning bool, 2018-01-19), * 73139fe600fc1399ae828077981a2498cb0a0b0c (loplugin:unusedmethods, 2018-01-20) * bb7ade140df807b6a0f12766a1365b8f8d0fd342 (loplugin:unusedmethods, 2018-03-08), * ed2ae3c3bb0a708cafc3de6a01adc9ddc43fb859 (remove dead SwNoteURL, 2018-03-14), * fd1cfd25b48cb4bd5c87e9cb317b37699ca3a1d6 (PortionType::Url is unused, 2019-01-18). It re-implements the functionality accidentally removed in commit da7671e4f7482110ecd0cfbfd7dbd9e0b873c81c (Opt.(FME): The new attribute handler makes a lot of code superfluous, 2001-03-15), moving it into SwAttrHandler, which replaced the ChgFnt in SwTxtAttr. It also fixes the code writing the HTML image map, to output valid HTML. And finally, it adds a unit test, to avoid repeating the story :-) Change-Id: I72ae3cf30f0e9689f50a2c877e1622e4ae46de49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166924 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-29reduce symbol visibilityNoel Grandin
Change-Id: Ibc850eb12c38f2985015f06e330585b02d6bf15f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166822 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-04-28reduce symbol visibilityNoel Grandin
Change-Id: Iad2d114d257244f456d5579636e5c25ce070a08a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166805 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-24vcl: Factor out common code and simplifyXisco Fauli
Change-Id: I836c8f85474dc564efa3ca781f47a25e1d8c55fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166582 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-04-22tdf#159660: also add normal blend filterXisco Fauli
Change-Id: I3edc7495975618357f002536857a11dcc72cc0b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166460 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for lighten mode in feBlendXisco Fauli
Change-Id: I17471a9c70a38d05de5ad476f817285fb2438e5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166429 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for darken mode in feBlendXisco Fauli
Change-Id: I56862163b7bf1177120081c95ab7851a5fc4019b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166428 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for multiply mode in feBlendXisco Fauli
Change-Id: I03230e122a10dd6ada6af357c674c278b6b99d9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166427 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#160726, tdf#48062: Simplify how BitmapExs are createdXisco Fauli
In my initial approach, I tranformed the primitive2DContainers before converting them to BitmapEx. This caused circles like https://bugs.documentfoundation.org/attachment.cgi?id=193790 not to be displayed. Simplify how BitmapExs are created by just using the range both primitive2DContainers have in common. This way, DrawBitmapInRect can be dropped now Change-Id: I2401dc87b98e04b9cf9f5ebade2b5622d884fc3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166391 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-20Return double from OutputDevice::GetTextArrayMike Kaganski
And introduce GetTextWidth / GetTextHeight variants returning double. It allows to avoid premature rounding. At least in one case - testTdf145111_anchor_in_Fontwork - it allowed to make the test DPI-independent (at least in my testing on Windows, using 125, 150, and 175% UI scaling). Change-Id: I973d2c729ec6bb7114b4f99b9027f1ead7c1d061 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166237 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-19tdf#160622: Let SalLayout::GetBoundRect return basegfx::B2DRectangleMike Kaganski
This avoids premature rounding in TextLayouterDevice::getTextBoundRect. The box in D2DWriteTextOutRenderer::performRender needs to be expanded to allow room for the line width (which now will be guaranteed on all sides; previously, the rounding could happen to give no room on some side, even prior to commit 8962141a12c966b2d891829925e6203bf8d51852). Fixes some lines partially cut off in smaller text (or zoomed out). Change-Id: I07335136021f894cf045363b4d736bfab06c64d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166236 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-17Drop FRound, and use generalized basegfx::froundMike Kaganski
Change-Id: I7447e649dc3ef4e51242f69c7486a3e84e103d2e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166159 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-16tdf#48062: Add support for arithmetic in feCompositeXisco Fauli
Took https://github.com/w3c/csswg-drafts/issues/3831 as a reference Change-Id: I42039c481ec114c3faeae51526a5f29b86960146 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165828 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-12tdf#159660: Add support for screen mode in feBlendXisco Fauli
Change-Id: Iefe655a370cca930319290baa2a25d791371f55c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165958 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-08cid#1596254 Null pointer dereferences in GetSotStorageStreamNoel Grandin
Re-arrange the calling convention to make it obvious that a valid stream is the same as a good (true) result. Change-Id: I974b023a8e7231e70ab649628fdbe43c33001e5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165874 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-02simplify SotTempStream and lifetimeNoel Grandin
It is really just an SvStream instance, and the lifetime does not need reference counting Change-Id: Idb5ffd96f852aae0dc1a94cddc0a83fbcdf974ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165655 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-01tdf#151413: add UTF-8 data to the Link clipboard formatMike Kaganski
And introduce methods in TransferableDataHelper to handle that. Change-Id: I1d91f0f6b7e8523125f9cc1507dbd6737968f7d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165607 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-28fix comparison of UIObject's inside UITestsNoel Grandin
using == to compare them doesnt work, because we return a new one with every call to getTopFocusWindow and similar. So add a equals() method to the UNO interface to do the comparison. Change-Id: Ie909fe9b4e84fe07f4ca87bbebf65b56d3da8f78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165436 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-28vcl: Implement JSLevelBarHubert Figuière
This fixes the JSDialog layout of the sheet protection dialog. This was introduced for 24.02 to provide password strength indication of the sheet password. Defined a new WindowType of PROGRESSBAR. The type property in JSDialog JSON will be "progressbar". Change-Id: I202528a81706943e1838f3c37fb555f4a1bf889e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165236 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-25Relax SolarMutexReleaser precondition to not require SolarMutex lockMike Kaganski
As discussed on https://gerrit.libreoffice.org/c/core/+/164843/2#message-8873d3d119de7206b33bc824f5809b8b1d3d97da, it is impossible at times to know in advance, if a specific code, that must not be guarded by SolarMutex (e.g., calling to other threads, which might need to grab the mutex), will itself be guarded by SolarMutex. Before this change, a required pre-requisite for SolarMutexReleaser use was existing lock of SolarMutex; otherwise, an attempt to release it would call abort(). Thus, in some places we had to grab the mutex prior to releasing it, and that itself introduced more potential for deadlock. Now the SolarMutexReleaser is safe to use without the lock, in which case, it will do nothing. Change-Id: I8759c2f6ed448598b3be4d6c5109804b5e7523ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165262 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-23Harmonization of warning and error colorsHeiko Tietze
* hard-coded colors from infobar moved to settings * weld::LabelType::Warning and ::Error uses these colors * gtk3 native configuration removed Change-Id: Ia80584e9267b8385f7f6b25322f5a85a2570af68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165161 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-03-22vcl: remove SetSizePixel from BitmapExTomaž Vajngerl
Makes no sense (and would case serious problems) to set the size (pixel) from the outside of the BitmapEx. Change-Id: Iab597f755d45be2380884ec6685d119fcc8b1e98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164946 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-03-21tdf#93352 Fix horizontal swiping and scrolling when using an RTL UIPatrick Luby
Starting with commit bfa21ce5fa08f2c634ccb6162914be55aef9f3c2, horizontal swiping in Calc moved in the wrong direction scrollbars were drawn mirrored. So, revert parts of commit bfa21ce5fa08f2c634ccb6162914be55aef9f3c2 so that we are using Calc's previous "negative scrollbar range" implementation for RTL UIs, but only for horizontal scrollbars since vertical scrollbars are the same in LTR and RTL UIs. Also, always disable RTL for scrollbars. Enabling RTL causes the following bugs when clicking or dragging the mouse in scrollbars in Calc's RTL UI: - Click or drag events get mirrored so you must click or drag in unexpected locations to move the scrollbar thumb in the desired direction - Repeatedly dragging the scrollbar thumb leftward can only move no highter than the R, S, or T columns Note: even though RTL is always disabled for Calc scrollbars, the arrows must still be swapped in vcl's ScrollBar class. Change-Id: I85aac94ffaf7df2eeb251a3ff150cc0363b5d770 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164959 Reviewed-by: Stéphane Guillou <stephane.guillou@libreoffice.org> Tested-by: Jenkins Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
2024-03-20vcl: move Vectorize out of Bitmap - add Vectorizer classTomaž Vajngerl
Change-Id: I991b6e908d4139723c2d408d4ba3586676fded18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164693 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-03-17reduce symbol visibility in vclNoel Grandin
Change-Id: Ibe6154dc5de6251fb39952caa190d53a6fd1fd89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164926 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-16reduce symbol visibility in vclNoel Grandin
Change-Id: Ia56bb092a4634e301ff8922ae63e6f7ede874d80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164865 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-15Make vcl::bitmap::get_unpremultiply_table VCL_DLLPUBLIC againMichael Weghorn
This fixes my GCC 13.2.0 --enable-gtk4 build on Debian testing, which started failing after commit acd40306b3737d50cf24462b2d3e451092543e64 Date: Thu Mar 14 12:22:13 2024 +0200 reduce symbol visibility in vcl like this: /home/michi/development/git/libreoffice-WORKTREE/vcl/unx/gtk4/../gtk3/salnativewidgets-gtk.cxx:2195: error: undefined reference to 'vcl::bitmap::get_unpremultiply_table()' collect2: error: ld returned 1 exit status make[1]: *** [/home/michi/development/git/libreoffice-WORKTREE/vcl/Library_vclplug_gtk4.mk:20: /home/michi/development/git/libreoffice-WORKTREE/instdir/program/libvclplug_gtk4lo.so] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:290: build] Error 2 Change-Id: I0921801f6ad0f20f5250ca15a2749d7da044fcd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164856 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-03-15Fix buildMike Kaganski
[LNK] Library/libupdatecheckuilo.so /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:96: error: undefined reference to 'MenuBarUpdateIconManager::MenuBarUpdateIconManager()' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:105: error: undefined reference to 'MenuBarUpdateIconManager::SetBubbleImage(Image const&)' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:107: error: undefined reference to 'MenuBarUpdateIconManager::~MenuBarUpdateIconManager()' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:166: error: undefined reference to 'MenuBarUpdateIconManager::RemoveBubbleWindow()' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:187: error: undefined reference to 'MenuBarUpdateIconManager::SetBubbleTitle(rtl::OUString const&)' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:191: error: undefined reference to 'MenuBarUpdateIconManager::SetBubbleText(rtl::OUString const&)' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:197: error: undefined reference to 'MenuBarUpdateIconManager::SetBubbleImage(Image const&)' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:203: error: undefined reference to 'MenuBarUpdateIconManager::SetShowBubble(bool)' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:215: error: undefined reference to 'MenuBarUpdateIconManager::SetShowMenuIcon(bool)' /home/mk/core/extensions/source/update/ui/updatecheckui.cxx:55: error: undefined reference to 'MenuBarUpdateIconManager::~MenuBarUpdateIconManager()' collect2: error: ld returned 1 exit status Change-Id: I7175126d82731c3dd2cdba64646006f4be664450 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164855 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-14reduce symbol visibility in vclNoel Grandin
Change-Id: Ifaa37246e79678aa0c548b9ca8a9faf8036b9195 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164804 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-14replace VCL_DLLPRIVATE with SAL_DLLPRIVATENoel Grandin
it is always SAL_DLLPRIVATE, and we are already using SAL_DLLPRIVATE mostly, so just be consistent Change-Id: I7df969506a9b7a078921400cf245cede3c60c5f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164805 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-13Introduce a guard to delay processing of idlesMike Kaganski
In a following scenario, there could be a crash: 1. Platform: a Windows system with MS Word installed. 2. LibreOffice is run in a listener mode; 3. A Java program opens a Writer document in a visible mode, with an embedded Word OLE object; 4. It adds some text; then resizes the OLE object; then removes the OLE object. Word OLE objects have OLEMISC_RECOMPOSEONRESIZE flag [1]; this means, that every re-layout of the document with this object must ask the OLE server to re-layout the object content. So, the request thread changes the document text, which triggers idle re-layout or redraw; the idles start executing immediately in the idle main thread, with solar mutex locked; then the request thread starts the OLE object removal operation. The ongoing relayout in main thread would at some stage need to execute a call to the OLE object, which temporarily releases the solar mutex (this makes impossible using solar mutex to synchronize the order of operations in this scenario). Other mutexes guarding OLE object (in OleEmbeddedObject, and in OleComponent) are also released for the duration of the call. Thus, the removal that happens in the request thread proceeds, and the node containing the OLE object is destroyed, while the main thread (processing exactly this node) is waiting for the OLE server response, then for mutexes, to proceed. After that, the main thread would attempt to access the destroyed node object. This change introduces a scheduler guard (a RAII object), that sets a flag to not process idle events during the lifetime of the guard. In its constructor, it also makes sure, that current pending idle events are finished. This would make sure that guarded code started from other threads would not race with idles potentially accessing the model that is currently in transient state. [1] https://learn.microsoft.com/en-us/windows/win32/api/oleidl/ne-oleidl-olemisc Change-Id: I2ef0601ccd8b5872588a88493d1f43e39022dbed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164753 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-13reduce symbol visibility in --enable-mergelibs=more modeNoel Grandin
Change-Id: If811c9ec336543227db73c990248b9113846cf2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164657 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-07Revert hyperlinkInfoAtPositon changes.Gökay Şatır
Revert "Implement hyperlinkInfoAtPosition for Impress." This reverts commit 876543305c78cb596720da087454a5c54e5feb06. Revert "Readonly Hyperlink Info - normalize the clicked coordinates." This reverts commit 322669725b771f5fa2b3c10c5fb73238ca3713f6. Revert "Implement hyperlinkInfoAtPosition function for Calc." This reverts commit be01dd78c47b51b19603a6259504e29b11979b0b. Revert "Implement hyperlinkInfoAtPosition for Writer." This reverts commit 6773c8929690f557d29bc282dd8f5c4381da3484. Revert "In readonly mode, we restrict many events like click." This reverts commit a4f3b97e506f38e0c43d6fbf1192cc523750a9fd. (cherry picked from commit c3f1d63178d6aaa0888085c7b641eb6d49a18276) Conflicts: sc/source/ui/unoobj/docuno.cxx sd/source/ui/unoidl/unomodel.cxx sw/source/uibase/uno/unotxdoc.cxx Change-Id: Ie821a4bca6e6b4649cea17748c44af105cd45d30 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164481 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>