summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2021-12-01Distinguish between --disable-gui and --without-xJan-Marek Glogowski
For the static WASM build, we need to build with GUI but without X11, as this just includes a static Qt backend. We already have USING_X11, which indicates that the platform will use X11 as a backend, so we can match --without-x to USING_X11=no, independent from the --disable-gui setting. Fitting all this into vcl/Library_vcl.mk was originally getting quite complex, but by moving the logic into configure.ac in a previous commit, the branching becomes way easier. Change-Id: Ia2ddba3400b4306b609a1f64823cca75061e0593 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116125 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-01improve the script for reducing symbol exportsNoel Grandin
And apply some of the results Change-Id: If555476fdd951cbc1d01fb3ef3ab1cbca2b64960 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124896 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-01tdf#145964: Windows format name is FileNameW for Unicode stringsMike Kaganski
Otherwise SIMPLE_FILE clipboard format arrives encoded in ACP, and fails for any characters not representable in ACP. Change-Id: Ice8cfd98955e3ef49682aa21b41a313786b291f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126131 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-30don't disable Skia tests on MacLuboš Luňák
MACOSX is now not just the aqua VCL backend, and the Skia backend can actually handle tests in HiDPI mode too. Change-Id: I38ce9b7ed0a9a3a5f02a25223582bfde7b56ab9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126148 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-30fix Skia copyArea() not coping with coordinates outside (tdf#145811)Luboš Luňák
Apparently the call is expected to handle even copies that are partially outside of the area, e.g. window scrolling seems to do this occassionally. Change-Id: I9a06c047f00d6b5b920d61f577baa9181bdc5a2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126147 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-30svp: normalize DoYieldJan-Marek Glogowski
I somehow missed / forgot, that SvpInstance::DoYield was now also yielding on the main thread and doesn't try to do "funky" multi- threaded event processing anymore (because it's no GUI), since commit 0efd06de8fca4036c4132b2745a11273b1755df2 ("vcl: fix hangs in SvpSalInstance"), So this just moves the main thread part into ImplYield and implements DoYield like on all other architectures, as described in README.scheduler. I've tried to fix the LOK poll to be more sensible. Change-Id: I4323685aa250e9d62a2f448cef358a7aa8ae862c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117899 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-11-30gtk[3|4] calculate row height closer to what gtk appears to doCaolán McNamara
we're getting slightly more lines than requested visible in f.e. the calc autofilter drop down Change-Id: I9ca16eb5ec6848499997a6fceec1d0ead693efce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126119 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-30tdf#145952 don't crash with LO_COLLECT_UIINFO set in autofilterCaolán McNamara
Change-Id: I27c474c522554c825c0296cdf711d481d22fd024 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126126 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-30gtk[3|4] allow anything that would enable positioning onscreenCaolán McNamara
Change-Id: I68a96c4ae860c705108f4aaaf23e4bd05badf849 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126122 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-30handle Skia not drawing GPU-backend shader to a bitmap (tdf#145797)Luboš Luňák
https: //bugs.chromium.org/p/skia/issues/detail?id=12685 Change-Id: I4de51b154e270df470102c357c25bdfa430a4488 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126118 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-30loplugin:simplifyconstructStephan Bergmann
Change-Id: I280b668e40d800ecd6eb03ddcda3c2ebd2dd0254 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126114 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-11-30tdf#145873 Fix FILEOPEN: EMF file not displayed #2Hossein
The previous patch 149bd802623d6d83ec9aa04514b938494f7f01f6 only partially fixed the problem, and the size of the graphical objects was wrongly calculated. This patch fixes this problem. The fix can be tested with: make CPPUNIT_TEST_NAME="testTdf145873" -sr \ CppunitTest_vcl_pdfexport This test exports the PPTX to PDF and checks the size of the objects. The previous test for this issue which exported to SVG is removed, as it could not test the current situation. Change-Id: I97bed99811eaf8236ded84ffe0c1a7d3d1b5bad5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125924 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2021-11-30workaround gcc bug #55776 about enum class shadowing a globalLuboš Luňák
GCC warns that 'enum class XorMode { None }' shadows 'constexpr int None = 0' for a workaround for X11 headers, even though there's no case for confusion here. So instead of a workaround for X11 headers work this around by placing the enum first, and then GCC does not complain. Change-Id: I3e7cfaced957d47dee8cc4f10ee74e8dd97a5cc5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126083 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-30remove duplicated VCL_DLLPUBLICLuboš Luňák
The class itself is already VCL_DLLPUBLIC. Change-Id: Ic1c352ebce8fbee4602ddc84b2db22eb0038b5e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126075 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-30Document SAL_NO_MOUSEGRABSSamuel Mehrbrodt
Change-Id: I8c94f358111be231ae96a81da264a999c18a0a3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126079 Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2021-11-29implement xor drawing directly using Skia (tdf#141090)Luboš Luňák
Up until now this has been implemented like in almost all other VCL backends by manually xor-ing pixel values. But that required fetching pixel values from the GPU in Vulkan mode, which is relatively slow. Since some time Skia now has supported writing custom blending modes using the SkBlender class, so it's now possible to drop the hack and support xor drawing directly using a blender that does the operation. This should be both faster and simpler. Change-Id: Id751d0ed4034852ce68697ecf56cc6dfac95307f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126051 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-29remove Skia kDifference workaroundLuboš Luňák
I thought it was a driver problem, but now I'm actually not sure, as I cannot reproduce it anymore and I don't know if it was a driver update or Skia update. Either way, this works now. Also switch to kExclusion, because the end result is the same, but this formula is simpler (to understand primarily, the performance is going to be probably the same). Change-Id: I6ced098ca4a3361cf98d3f9b32968c128eb9f299 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126050 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-29move PopupMenu::IsInExecute out of vcl/include/menu.hxxCaolán McNamara
Change-Id: I01af38dd57a645ea0afeaff033ce6d07dfe09535 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126026 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-29these are pdf export tests, move them to vcl_pdfexportXisco Fauli
Change-Id: Ic9412e86f9256f8e2ca6823d8b5b8757c4273025 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126025 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-29gtk3: set anchor_hints for gdk_window_move_to_rectCaolán McNamara
Change-Id: Id7d79e0b505cfaadf1dbae770b69eea46b43157c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126007 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-28don't need to include vcl/menu.hxx from vcl/menubarupdateicon.hxxCaolán McNamara
Change-Id: Iefb4e08ebf0c2c15b11cfc1d807ae9dc50326923 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125954 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-27Related: tdf#144410 we don't want a gap in a multicol spanning separatorCaolán McNamara
we would need another column to show a drop down indicator, and we don't want the separators to have a visible gap in that case Change-Id: Ib45b4cda41a09b631f3ea4d4427a8073a9e243d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125947 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-26-Werror,-Wreorder-ctorStephan Bergmann
Change-Id: Ie0a1036f57bc1449dda324b99fd83170969958a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125856 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-11-25Resolves: tdf#145786 get the correct bounds with window scaling enabledCaolán McNamara
the per-window/app scaling as opposed to the global desktop one which wasn't affected. the menubutton thought it saw the mouse release happen outside the window it popped up when the combobox inside it was clicked, so popped down the popup from underneath the combobox. Change-Id: Iace9538073bb2380443d87600a872e88885934d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125807 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-25vcl: pInputElement is never nullptr in PDFObjectCopier::copyRecursively()Miklos Vajna
Change it to a reference to make that more obvious. Change-Id: Ie1da9982ee2d54a5d68d393a04643d1684521ef5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125786 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-11-24gtk3: I don't think it makes sense to claim a crossing event is consumedCaolán McNamara
if it does, then we should use the return of m_aMouseMotionHdl.Call() Change-Id: I9f04fcba1ef1d9768c3ce3b042884110a63f26a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125781 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-24Resolves: tdf#145864 we should only return true if we consume the motion eventCaolán McNamara
and false if we want it to continue to be passed on to other handlers Change-Id: Ie237f890e3d065949dcfedb08b9f6c804643b4b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125780 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-24gtk[3|4] don't need the ifdefs if only using the dlsymed functionsCaolán McNamara
Change-Id: I2c3b7a19f047d341467f9c66ef93e3185330854d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125744 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-24Rename o3tl::underlyingEnumValue to o3tl::to_underlying to match C++23Mike Kaganski
Change-Id: I1597a8e77199445bf377dbe54adc3134bb04fd51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125748 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-24tdf#84283: vcl_pdfexport: Add unittestXisco Fauli
Change-Id: I56f50dcd93ef196d2261be924e004b9981d405dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125741 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-23CppunitTest_vcl_pdfexport: factor out common codeXisco Fauli
Change-Id: I4e25906f2b63b36d31e08282ec72921fe10f08b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125738 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-23tdf#62812 WIN use a compatible DC for font funcsJan-Marek Glogowski
All these function work on a temporary font. It's not clear, if the CreateCompatibleDC is actually needed and if the ScopedFontDC could actually just use the SalGraphics DC and restore its HFONT, but this at least now works as expected. A later patch can just drop the CreateCompatibleDC and DeleteDC calls. Change-Id: I6e86d660e69a58fa2eab89ece80c61e2635fc792 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125652 Tested-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-11-23Crash around help-windows.Michael Meeks
Seems a popular way to crash: vcl::Window::ImplCallMove() vcl/source/window/event.cxx:555 vcl::Window::Show(bool, ShowFlags) [clone .localalias] /usr/include/c++/10/bits/unique_ptr.h:173 vcl::Window::Show(bool, ShowFlags) vcl/source/window/window.cxx:2345 HelpTextWindow::ImplShow() vcl/source/app/help.cxx:371 Scheduler::ProcessTaskScheduling() vcl/source/app/scheduler.cxx:495 Change-Id: I33ca0059844395c41f4d76619cca22aec81df207 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125710 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2021-11-23tdf#139460 improve autofilter sub-menu interaction under gtkCaolán McNamara
so the submenu pops down when the mouse moves back into its parent. This removes layer of InterimItemWindow and for gtk (under wayland) the autofilter and its submenu can use native GtkPopovers Change-Id: I4c8c3d2087566f508d75eda72e272d9f7fba2f00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125428 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-23only call signal_closed from Popdown dtor if it is still openCaolán McNamara
Change-Id: I251239a6ebbd3f55b68a0c2cb15b4bd6728e19c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125703 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-23avoid only painting to windows in LOK mode, not invalidationsLuboš Luňák
9b73d3e8926d5f9b10464d19b539eef3eb088f50 disabled painting to windows in LOK mode, because it doesn't make sense as those windows are not even visible, but it tried to do it by avoiding even invalidations. That can trigger problems because some dialogs actually are forwarded to clients in LOK mode, and apparently they need the invalidations to proceed normally (the Format->Cell dialog in Online didn't repaint scrolling of the Date listbox, I don't know what exactly the actual problem was, but mnPaintFlags were different than when not avoiding invalidations). So revert most of the relevant commits and keep only avoiding actual drawing, which is what 057968bbce406efe6564347329df45b7e did. Change-Id: I4e212966830f4c690e6143b9d5fedbc24619e1ed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125674 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-23O[U]String::replaceAt overloads that take string_viewNoel Grandin
which results in lots of nice string_view improvements picked up by the plugins Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-23tdf#129638 print preview: use new paper size after switching pageJustin Luth
This is a partial revert of LO 6.3 commit 2c23a96f7b6888c0e05fdc2aba57f03cd797b647. Change-Id: I17525d06d96779671caaa84e1e48629289453ad2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125685 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2021-11-23gtk3: reuse popover replacement as mouse event widgetCaolán McNamara
Change-Id: I99aa1f1843c5ff6e4c76716178e721a96ae284fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125676 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-22Use less DegreeN::get()Mike Kaganski
Change-Id: I97b8d6282c72307cc29a913af221d283523f2fae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125653 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-22handle filling and stroking at the same time if possibleLuboš Luňák
All tests still pass, so the end result should be the same, but this way it's done in one call. Change-Id: If5da34837a45ad600ae30568e4ba7651ac5838bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125644 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-22move code to helper functionsLuboš Luňák
I'll want some common extra functionality there later. Change-Id: I249f9ca4662fc8e8d52c58b1bd33293f363464d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125643 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-22tdf#133835 speedup calc autofilter (7)Noel Grandin
vcl::Font avoid allocating a new instance if the setter doesn't change anything, saves 5% Change-Id: I461a2a8e3709b3f3f20e431cb3b976ad47bed0ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125625 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-22Related: tdf#145786 cooperate between our own grabsCaolán McNamara
don't try to workaround a grab if the grab is done by another of our own popups, and on tearing down one of our popups, restore the grab of its parent if that parent was one of our own popups. This typically matters on X where we don't use GtkPopovers (unlike wayland, where Popovers can escape the parent window). Things to test are: writer's watermark dialog: click the color button to get the 1st level popup, then click the combobox to get the 2nd level one, select an entry to return to the 1st level. a) Clicking a valueset element should select that color, not dismiss the popup without selecting a color. b) Clicking the combobox to get the popup again should result in a popup where the focus still follows the mouse (i.e. the 1st level popup doesn't try and steal away the 2nd level grab) sidebar: same scenario as above, except a color popover parented to a sidebar pane and not a dialog. Change-Id: Ib5d765b22b8a9b6b1a7806676c8fe3cfb7709734 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125638 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-22gtk3: popover replacement for GtkMenuButton has to be modalCaolán McNamara
Change-Id: If1b18c4b39fbe82fd613ff0f62f0ff60fdaeeed8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125637 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-21gtk3: consider replacement for popovers visibility when queryed for itCaolán McNamara
Change-Id: I4ca71f8544720e99514abe78717dcd07617c00cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125475 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-20gtk3: don't double close popover replacementCaolán McNamara
Change-Id: Ibdd7de56ab1cadd76748422c08e21904f912532a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125567 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-20Use C++17 hexadecimal exponent floating point literalsHossein
Using new syntax for the power of 2 exponent instead of using shift left (<<) operator Change-Id: Iaa627800fb35af37a6b0efcd939f1d5f78f70e5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125458 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-19add placement to Popover popup_at_rectCaolán McNamara
Change-Id: Iaa12a48f62037dd985d526993a07762b10bd0cee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125474 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-19fix gtk4 buildRene Engelhard
res is only defined if NDEBUG is *not* defined. So it doesn't exist in a "standard" build using -DNDEBUG and shouldn't be used. Change-Id: Iebae9898d50030f994a7289e2bc3fe3052172dee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125582 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>