summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2021-02-15use GetPopupParent for editeng transient dialogsCaolán McNamara
Change-Id: Ie799643b68ea41b4c4d0d0493755d09d3983d9e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110934 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-15vcl: Detect TGA graphic by inspecting the file footerTomaž Vajngerl
Works only with TGA ver.2 files. Change-Id: I0378a1e03e238cd444175035768cccf491480191 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110898 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-02-15vcl: split-up GraphicFilter::Import into per-format methodsTomaž Vajngerl
Change-Id: Idb5f120f47b4374fc709413a615baa606cd9b165 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110896 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-02-15tdf#140414 add getting mouse pos to EditViewCallbacksCaolán McNamara
Change-Id: I09172e0cb24f5c45d2837cf2f2fc7cc4baa456a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110932 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-14Move unit conversion code to o3tl, and unify on that in more placesMike Kaganski
This also allows to easily add more units, both of length and for other unit categories. The conversion for "Line" unit (312 twip) is questionable. Corresponding entries in aImplFactor in vcl/source/control/field.cxx were inconsistent (45/11 in; 10/13 pc; 156/10 pt). They were added without explanation in commit c85db626029fd8a5e0dfcb312937279df32339a0. I haven't found a spec of the unit (https://en.wikipedia.org/wiki/Line_(unit) is not specific). I used the definition based on "by pt", "by mm/100", "by char" (they all were consistent); "by pc" seems inverted; "by twip" was half as much. This accepted conversion makes unit test for tdf#79236 pass. Change-Id: Iae5a21d915fa8e934a1f47f8ba9f6df03b79a9fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110839 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-02-12weld impress annotation windowCaolán McNamara
Change-Id: Idc89f4e382392103d373b6a84edaae10abd56056 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110650 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12avoid auto-hiding disabled menu entries with cut/copy/paste idents tooCaolán McNamara
Change-Id: I549027b496c4c1ee14cd5d9f19f77748600e99db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110822 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12don't split menu ids at ':'Caolán McNamara
Change-Id: I2453b1867ffe5b9a2fe6659f2893911ba2fa5543 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110820 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12when there is label and icon align label to left and don't expand iconCaolán McNamara
Change-Id: I158b6c40ecb1b1713546cdbce7f7c001b8940b00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110802 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12always optimize bitmap transform to translate+scale if possible (tdf#138068)Luboš Luňák
Commit 828504974d70111e make OutputDevice::DrawTransformedBitmapEx() always call DrawTransformBitmapExDirect() in preference to explicitly converting to DrawBitmapEx() if the transformation wanted was at most translate+scale, in the hopes that these days the backend implementations work well enough. But it turns out only the Skia backend handles that without loss of performance. So always do the conversion to DrawBitmapEx() if possible. It's so simple that it possibly makes sense to always do this, regardless of the backend. Change-Id: I6eba68e672334c38433f53980f49400499f5d8e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110716 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-02-12allow using css::graphic::XGraphic to set menu imageCaolán McNamara
Change-Id: Ice5062f26ea300aec73d5fd849484c8bc4fc43bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110793 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-12pdfium: eliminate FPDF_TEXTPAGE from the public headerMiklos Vajna
All usage goes via the PDFiumTextPage interface now. Change-Id: Ied9d7fc9e1cf91b6a2feca63264993fd77348bed Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110792 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-11jsdialog: properly export visibility of tabSzymon Kłos
Change-Id: Ib715633a3c7ed0730349a8dbf7205199eebe89ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110713 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-11tdf#139429 Convert Style previews widget to IconViewSzymon Kłos
- this adds labels to easily identify the styles - easier to work with many styles - nice native widget in gtk3 - double click opens the style settings - added Command callback fro iconview Change-Id: I08743515cbd2a4e4bd592d1509e48bbe2a43b129 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110408 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-11Related: tdf#139667 allow TabControl tabs to always show tooltipsCaolán McNamara
If one is set, then just show it. The removed restrictions seem to have been added in... commit 85702858a81c72b40f0e7e3ce05e677ffb996da9 Date: Tue Dec 16 16:42:03 2008 +0000 CWS-TOOLING: integrate CWS alf01 fix: #158798# show tooltip if only a image is shown where #158798# is old private bugtracker and referenced public #i95201# add: images for tab items has no mention of the restrictions Change-Id: Ia11952700fb212397bf0c0228666a1545817ce8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110757 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-11ImplGetTabRect(ImplTabItem*) variant always returns 0 with default argsCaolán McNamara
so TabControl::GetPageId(const Point& rPos) doesn't work since... commit 6540912ae1a570fd8c2318f77b757e07b87c0707 Date: Sun Jun 16 21:41:31 2019 +0000 VCL merge most of NotebookbarTabControlBase Change-Id: Ia99911e753dbe2bb22dc892c6bddc0392fab97a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110728 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-11make win32 variant AnyInput() not deliver events (tdf#140293)Luboš Luňák
Win32 API PeekMessage() actually may deliver events, despite what the name may suggest, even with PM_NOREMOVE argument. That means this is problematic for use in AnyInput(), as that function should just check the event queue but not do anything with it. Using GetQueueStatus() should solve the problem. See https://lists.freedesktop.org/archives/libreoffice/2021-February/086788.html for further details. Change-Id: I10d3423f89f6f050534625110113dee60959f7a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110718 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins
2021-02-11pdfium: add a FPDFText_GetCharBox() wrapperMiklos Vajna
Which was the last public use of PDFiumTextPage::getPointer(). Change-Id: If3339f09ba38a3f10b19fe85cded718c913eb067 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110750 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-02-11support setting tooltip for tabpagesCaolán McNamara
doesn't actually have an effect in practice yet though Change-Id: I1d88f4b1c8caa44ad542f9666d86449c078ff93c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110727 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-11Remove unneeded breaksAndrea Gelmini
Extending this: https://gerrit.libreoffice.org/c/core/+/110512 Change-Id: I1066aac690fe297a557352266f3405ae29ed4593 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110522 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-10Resolves: tdf#140225 remove action when item is removed from GtkSalMenuCaolán McNamara
and we have previously ensured that all items are removed by Menu::dispose before GtkSalMenu dtor is called Change-Id: Id91cfb96a16dfa7c55bb8bc6676cb7921ec8dd37 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110704 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-10Related: tdf#140225 when clearing pItemList, keep SalMenu in syncCaolán McNamara
with their removal during menu teardown Change-Id: Ic5555372112c5717cbc39c38c6172344e807deb5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110703 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-10Related: tdf#140225 ignore activate/deactivate of a disposed VclMenuCaolán McNamara
prep work for improved solution for tdf#140225 Change-Id: I381d018725c8981ea09ca5d30ec6d669fba15226 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110699 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-10cid#1472858 Unchecked dynamic_castCaolán McNamara
Change-Id: I3103719f6184efb7b9ecfb6d589d6757449814cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110693 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-10pdfium: eliminate FPDF_SCHHANDLE from the public headerMiklos Vajna
Change-Id: I3b4fe169304c34d78019c4cc84b786ca84221d89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110659 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-09loplugin:fakebool (clang-cl)Stephan Bergmann
But GetMessageW encodes more than true vs. false in its BOOL return value, so silence the unhelpful loplugin with auto. Change-Id: I77d053b760e93f918367532c63a6dfe963faa12d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110645 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-09Revert "on SelMouseButtonDown check if window pointer is not null"Caolán McNamara
because there is no pWin for the cases where an EditEngine is hosted in a native widget, e.g. comment in a sidebar in writer or format header/footer in calc's format page, header/footer, edit... and with change applied clicking doesn't move the cursor This reverts commit 0a2fa32f8756b3c99975df6d98736a8e9abb625a. Change-Id: Ie1da24d22b6d298f0c074f7bf187c5d891b78368 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110648 Reviewed-by: Pranam Lashkari <lpranam@collabora.com> Tested-by: Jenkins
2021-02-09tdf#140225 call cancel before destroying menubarCaolán McNamara
a) in case there are some menus open cancel them before removing their parent menubar b) when a GtkSalMenu is deleted clear the action-group of the hierarchy and flag it as needed a refresh, clearing it of any references to the deleted GtkSalMenu Change-Id: I9ec59c52c72b8b58976a8ee41727ca7612ebf6b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110542 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-08jsdialog autofilter: show submenu on demadSzymon Kłos
- add posibility to trigger full update - send information if docking window is visible - send close message on builder destruction Change-Id: I0b3abc5ebcacf7f9a48910edf1bf0d73e8120d6e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110578 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-08Revert "update Skia to chrome/m89" (tdf#140023)Luboš Luňák
That update started using SkSamplingOptions to specify image scaling quality. Some places using SkImage::makeShader() should use the quality instead of default SkSamplingOptions ctor, but even with that fix the test document still uses the default nearest quality. Since chrome/m90 will introduce further changes related to this, I'll just revert to m88 and revisit this with m90. This reverts commit 2cf9b8e265e9694803f55e30f2f392abfa512a5a. Change-Id: Iea0e57b7e7b804675d393e4088532a6f617bfd43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110541 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-02-08update pchesCaolán McNamara
Change-Id: Icf55ddda055d11b649e7607c2cdd8b6d6ddfefbc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110483 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-08Improve loplugin:cppunitassertequal for CPPUNIT_ASSERT(a && b)Stephan Bergmann
...by re-enabling the code temporarily #if'ed-out in a528392e71bc70136021be4e3d83732fccbb885e "Fixed/improved loplugin:cppunitassertequals" (and which then triggers lots of other lopglugin:cppunitassertequal CPPUNIT_ASSERT -> CPPUNIT_ASSERT_EQUAL warnings). For two css::uno::Reference equality comparisons in cppu/qa/test_any.cxx, it was more straightforward to rewrite them with an explicit call to operator == (which silences loplugin:cppunitassertequal) than to adapt them to CPPUNIT_ASSERT_EQUAL's requirement for arguments of identical types. In sc/qa/unit/ucalc_pivottable.cxx, ScDPItemData needs toString, which has been implemented trivially for now, but might want to combine that with the DEBUG_PIVOT_TABLE-only ScDPItemData::Dump. Change-Id: Iae6d09cf69bd4e52fe4411bba9e50c48e696291c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110546 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-07invoke idle priority timers only when actually idleLuboš Luňák
The 'Idle' timers are misnamed. They are zero-timeout times, i.e. they are invoked immediately after returning to the main loop. But that does not necessarily mean they are invoked when idle, there may be e.g. user input pending in the system event queue. In fact, LO events are processed before system events, which means that 'Idle' timers are normally processed before user input. Besides being confused, this also leads to poor performance in some cases, such as when using mouse wheel to zoom in a large document. This results in several mouse wheel events, each of which will result in adjusting the zoom and that causing a repaint. Repaints are internally handled using a TaskPriority::REPAINT 'Idle', and so what happens is zoom->repaint->zoom->repaint->zoom->repaint instead of the more efficient zoom->zoom->zoom->repaint. This change (besides trying to clarify the confusion in the docs) delays invoking tasks with priorities TaskPriority::HIGH_IDLE and lower if there is user input or repaint events in the OS queue. That means that tasks using idle priorities actually will be invoked only when idle (barring background threads etc.). I'm reasonably certain this is a safe change, there's no guarantee when exactly tasks will be invoked (e.g. other tasks with a higher priority go first) and explicitly specifying such a priority means asking for it. I already implemented this once in 06d731428ef6cf93c7333e8228b, and it was also again done in 87199d3829257420429057336283, but apparently these have been removed. There was d348035a60361a1b9ba9e 'Drop special idle handling' with the reasoning that 'Idles are just instant timers'. Which strictly technically speaking is true due to 'Idle' being a misnomer, but the point is that some idles should be actual idles and that's why they need to be handled specially. Change-Id: I36c2b02a80ae7e1476b731f878d9b28aa87975f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110538 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-02-06Use more conversion functions from <tools/UnitConversion.hxx>Mike Kaganski
This unifies conversion functions to provide both floating-point and integral overloads, with correct rounding for the latter. Also sanitizing code it templatized to allow reuse if needed. Change-Id: Ibe1c9fe4d5baa226c600445779dbaf7dc41a02cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110487 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-02-06move Button to vcl/toolkitCaolán McNamara
Change-Id: I11e4fbab2e70342683febacf444fbe08dabf2417 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107346 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-06move MenuButton to vcl/toolkitCaolán McNamara
Change-Id: I3f228c36e3f35ba54cab2ee87fcfbbae7992668d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107265 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-06complete TODO to keep color if font changes and vice versaCaolán McNamara
Change-Id: Ic38ed14ed67e477d97523b5a670528f5aa0f93f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110482 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-05improve SalInstanceWidget::drawCaolán McNamara
Change-Id: I9acb8dfceee586b343feb184e0788491d66d24a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110427 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-05Revert "Fix typo in code"Stephan Bergmann
This reverts commit 3ed9bba283a6a67864c0928186e277240be0d9ba. osl_Pos_Absolut (include/osl/file.h) is part of the stable URE interface; it must not be changed. Change-Id: I1f49923a9351e4be5aee39b10720d38b424feb9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110435 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-05on SelMouseButtonDown check if window pointer is not nullPranam Lashkari
Change-Id: Ib6f7821e685c407d29bed8fa61b9abf0e3535037 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110363 Tested-by: Jenkins Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
2021-02-05pdfium: add remaining FPDF_SCHHANDLE wrappersMiklos Vajna
So we don't have to expose the raw search handle in the public header anymore. Change-Id: I410314424e5a1d3a977c8e3de6f500f7c9a0a332 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110426 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-04Fix typo in codeAndrea Gelmini
Change-Id: Ib8b306a27d25a34e784aeeb72708b0d5d1511f3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110394 Tested-by: Jenkins Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2021-02-04split rect arg into dest pos and source rectCaolán McNamara
Change-Id: I622979fa54e54f1c6e00b5a16546fdbc12957422 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110383 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-04Don't skip lines if only one row in the listSzymon Kłos
Mouse wheel emits delta > 1 so if we see only one row but delta is 3 we skip then 2 rows. Change-Id: I136788d38a189c061a55cba12eef05c7a4733820 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110379 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-04Resize IconView entry if there is no spaceSzymon Kłos
If IconView has only one row and there is no space for default 100px height - scale down the entries. Change-Id: I8b310f1274ba91872af0849e36e3a87e775c98b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110381 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-04Invalidate IconView on scroll if has only one rowSzymon Kłos
When we have only one row the page size for scrollbar is set to 1 so delta is always 1. This prevents from invalidation when scrolling up using a scrollbar button and results in artifacts on the screen. Change-Id: I92ed0133450ba459e19b575d8c52d059464b1e33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110377 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-02-04Fix typoAndrea Gelmini
Change-Id: I2202a3208b2b65f2ca7fb887c48fce311aef8f7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110390 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-02-04fix sporadic crash in sd_misc_tests on windowsNoel Grandin
we end up trying to process a timer message, but from inside the vcl de-init function, which means the timer stuff has already been de-initialised. Change-Id: I94703219754f1ccabd3065fc5ea437f39264197b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110397 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-04pdfium: add PDFFindFlags wrapperMiklos Vajna
So that vcl::pdf::PDFiumTextPage::findStart() can be called without including fpdf_text.h. Change-Id: I6a765be6176ec77ca24f592e2e2210654debe075 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110391 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-04Missing includesMike Kaganski
... after commit 40b56cd8da8c38582dc4660b486993d1b4711535 Change-Id: I083cdfde6feda267e45060e6ff0593ead4ede9aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110384 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>