summaryrefslogtreecommitdiff
path: root/vcl/win
AgeCommit message (Collapse)Author
2022-09-01Fix dropdown mispositionedSamuel Mehrbrodt
Only skip the relative positioning when the window is indeed a dialog. Follow up fix for a49245e04d45735aa76ad7720657c83530ba9ed8 Change-Id: Idbd8327a943c512f0a617cb0ca72e9caeb2e61e3
2022-08-29Don't position dialogs relative to other dialogsSamuel Mehrbrodt
When calling setPosSize on a dialog, and there are other dialogs on top of it, the dialog was positioned relative to its parent dialog. Fix this, so that dialogs are always positioned relative to the main window (if there is one). Revert of/Follow up to 8750c812c9b808ee980f7e0ce0e6ce91e75e1424 Change-Id: I69f189865b118f9bc20077d48591fbd9e83b014f
2022-08-22Fix mispositioning when only quickstarter is activeSamuel Mehrbrodt
When positioning a dialog via external UNO connection, and no LibreOffice window is visible (only quickstarter is running), the window was mispositioned. The ClientToScreen call changes the requested position, so skip that for dialogs too. Change-Id: I7656ec66b6aeccdc1fa306f5e05cf72b3cb87214 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138135 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit 8750c812c9b808ee980f7e0ce0e6ce91e75e1424)
2022-08-19[CIBO] Use new branding internally in file associations as wellGabor Kelemen
ispired by commit e32e0124f8da122af300210e637362832298ba96 Change-Id: Iad03dc9ab40c655853bec64598a8df8202eef118
2022-06-16Revert "vcl: add some WinSalGraphics debug logging"Samuel Mehrbrodt
This reverts commit 89612b363f3f11248beea6fa98071c80e8ea7a9c.
2022-06-07Silence MSVC warning C4189 "local variable is initialized but not referenced"Stephan Bergmann
Change-Id: I346cf6cf148cd3b4ac851f8c441d54c858f55935 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107674 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 4376820074abc4d70765675ef5a4adae8f58effe) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135315 Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-06-07Silence warning C4189: local variable is initialized but not referencedStephan Bergmann
Change-Id: Ie36d7c4dfee5115b5909ed58a0b16b367e05866d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107734 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 14372e301f0198067e4965ac1a234d9f9d21e3b2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135314 Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-06-07Reuse pInstStephan Bergmann
Change-Id: I91e5a469344ab951225e61237b462ed58ed796be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107733 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit c8f61430b5760c7baabebff9c3159092975d4a88) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135313 Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-05-31vcl: add some WinSalGraphics debug loggingMichael Stahl
Change-Id: I70f96bef0db4d40b70e08426779435f75b0241fa
2022-05-23WIN add bootstrap var to re-enable foreground hackJan-Marek Glogowski
We already found a regressed installation from commit 518c0265efebf39ab6d1e90c4ec4e7cf52b701c6 ("WIN prevent deadlock in SetForegroundWindow"). Finding a real fix might be impossible, so this just adds the bootstrap.ini boolean variable Win32.EnableAttachThreadInputHack to re-enable the previous AttachThreadInput hack on demand. Change-Id: I3b6d770b060b5dee60e02a5aa85efb8a51518c82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90235 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2022-05-18tdf#144754 WIN de-assert ReleaseFonts / setFontJan-Marek Glogowski
DeInitGraphics might already have reset the default HDC font, while the WinSalGraphics still has a font fallback stack. Not sure why this didn't trigger the existing assert before. Quite probably there was an existing lifecycle bug. Regression from commit 42f9d4335bfa4b7299224801fd7ccdd97ae92fbf ("WIN always (de-)init WinSalGraphics") Change-Id: Ie5826e632310a0d69e8f9617cf6f3629bc31f152 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122726 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 3476106890ea2a00e6f949c918f6c05e17c66a36) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134516 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-05-18WIN lazy init WinSalInfoPrinter graphicsJan-Marek Glogowski
... and while at it make stuff private and add _ to the newly private member variables. The new assert revealed a bug in the SalGraphics refcounting, because the virtual ReleaseGraphics is called from the destructor, which was probably also the reason for the HACK and comment in Printer::ImplReleaseFonts. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122371 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 1b7c53db87bb67eeb2591fbb186f7ac20eb00c68) Conflicts: vcl/win/gdi/salprn.cxx Change-Id: I7af0bda19be6810dd8c0ea5b74604381e2047407 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134515 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-05-18WIN always (de-)init WinSalGraphicsJan-Marek Glogowski
Originally I thought the whole (de-)initialization was some kind of lazy SalGraphics init stuff. But reading the existing code proved me wrong and every InitGraphics came a few lines after a setHDC call and DeInitGraphics before deletion or setHDC(nullptr). $ git grep -n "delete.*pGraph\|setHDC\|InitGraphics" vcl/win/ So just make (De-)Init part of setHDC and drop all the other calls to (De-)InitGraphics, adding a setHDC(nullptr) to the destructor. I've also added some questionable asserts, like assert(pPrinter->mpGraphics->getHDC() == pPrinter->mhDC); As I read the code, you can have a printer object initialized with a DC but without graphics, which will be initialized on demand. But AFAIK it's invalid to have a printer DC != graphics DC. Then there was the hDC check in WinSalPrinter::EndPage, which is IMHO not needed. AFAIK there is no way the graphics DC might be "magically" invalidated, so restoring the old DC values should always work. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122157 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 42f9d4335bfa4b7299224801fd7ccdd97ae92fbf) Conflicts: vcl/inc/win/salgdi.h vcl/win/gdi/salprn.cxx Change-Id: I1b961cfa733263ce773575a728bcce5c7d3e97ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134514 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2020-12-05Some more checks for correct screen sizeSamuel Mehrbrodt
Change-Id: Id5a811e4227052fd9117ab2b099de31e8e3b90c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90413 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 3741d70743c297029f54b20b0ca711f40cff7097) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90576 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-02-27WIN prevent deadlock in SetForegroundWindowJan-Marek Glogowski
As mentioned in various blogs, like Raymon Chens "The old new thing", 2008-08-01, "I warned you: The dangers of attaching input queues", using AttachThreadInput to steal the input from an other thread, so SetForegroundWindow becomes more reliable, can deadlock in that call in win32u.dll!NtUserCallHwndLock. Stackoverflow also has a multitude of suggestions and links in "Win32 SetForegroundWindow unreliable", to circumvent Windows focus-stealing prevention mechanisms. A customer is experiencing these hangs reliably and often when opening LO windows via Java UNO, because the Window and the UNO thread are different and trigger this code path. Removing the calls to AttachThreadInput fixes the problem for them. This has started lately and nobody really knows why. I also know other customers with a similar Java UNO setup, which don't experience them. For better foreground handling, the calling app eventually should either use AllowSetForegroundWindow or CoAllowSetForegroundWindow (for COM servers), to give up the foreground / input handling. So this just drops the AttachThreadInput calls. Change-Id: I8de0a17aaaa44c24b1ee728b2ef6ec3aea951c54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89527 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 518c0265efebf39ab6d1e90c4ec4e7cf52b701c6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89572 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-24tdf#121740 cache font data to speed up PPT loadNoel Grandin
takes the load time from 24s to 21s for me. The cache was determined experimentally for this document. Change-Id: I34c78d1ff99cb8e72b274a201ded61d23e66941a Reviewed-on: https://gerrit.libreoffice.org/83470 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 90ea305110e5881256ba272800074a2a9f6b613d) Reviewed-on: https://gerrit.libreoffice.org/83542
2019-11-09custom widgets: support custom action button text colorsAshod Nakashian
Change-Id: I314183a1d6434c043183a600740c786e22a67503 Reviewed-on: https://gerrit.libreoffice.org/82276 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-10-24loplugin:classmemaccess (clang-cl)Stephan Bergmann
Change-Id: I4a403babbd24e7145aca4486230ae5b14b9eb581 Reviewed-on: https://gerrit.libreoffice.org/81428 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23loplugin:bufferadd (clang-cl)Stephan Bergmann
Change-Id: I854e1d4e6acef1c59842fe3921a42e95d0c8fd38 Reviewed-on: https://gerrit.libreoffice.org/81407 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23loplugin:stringadd (clang-cl)Stephan Bergmann
Change-Id: I324496ff7c61d87a83b6b378810aa5c78cd7dba3 Reviewed-on: https://gerrit.libreoffice.org/81405 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21ditch archaic Russian-only ui font tweakCaolán McNamara
Change-Id: Ib45ea8cebe5f4069e05353bc5f1be6b67045a18c Reviewed-on: https://gerrit.libreoffice.org/81216 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-10-21to wide -> too wideCaolán McNamara
Change-Id: I5a6743c41599f55b14461741cebc40e4186945a7 Reviewed-on: https://gerrit.libreoffice.org/81215 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-10-17Remove some memset callsMike Kaganski
Replace them with default initialization or calloc Change-Id: I747f53c2ced2d0473fd5a5ede4f8520a0633dcc1 Reviewed-on: https://gerrit.libreoffice.org/80805 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-17Rename OUStringLiteral1 to OUStringCharStephan Bergmann
It started out as a wrapper around character literals, but has by now become a wrapper around arbitrary single characters. Besides updating the documentation, this change is a mechanical for i in $(git grep -Fl OUStringLiteral1); do sed -i -e s/OUStringLiteral1/OUStringChar/g "$i"; done Change-Id: I1b9eaa4b3fbc9025ce4a4bffea3db1c16188b76f Reviewed-on: https://gerrit.libreoffice.org/80892 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-12tdf#128100: add explicit service pack and build info to Windows versionMike Kaganski
Change-Id: I7cedb51f52315b006506bb37fb3562a48c7f0f3d Reviewed-on: https://gerrit.libreoffice.org/80712 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-10-06SystemEnvData::nSize is no longer read and can be removedStephan Bergmann
...since 5926b22b5dc33490d23d594b129eb8a70b94ffb0 "The SystemEnvData passed into the canvas factories appears to be unused". (And the user-provided SvpSalObject ctor can be removed, at which point the use in SvpSalInstance::CreateObject should be written without "()" to avoid loplugin:subtlezeroinit. Change-Id: I4392fa2d697b29c814d7b577a7b1f8c984c05e70 Reviewed-on: https://gerrit.libreoffice.org/80298 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-02Refactoring of the class CrashReporterJuergen Funk
- remove double code - using of all the methode of the CrashReporter-Class - all methode only active when crash-dump enable except the addKeyValue With this change the handling for the patch tdf#127711 A runtime-switch for the MiniCrashDump would be simpler Change-Id: I339b3b8e06f7fc2cd3c0d34ece112a6fd352913a Reviewed-on: https://gerrit.libreoffice.org/79272 Tested-by: Jenkins Reviewed-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
2019-10-01loplugin:data (clang-cl)Stephan Bergmann
Change-Id: Ib8b2bc1c5f7b27a646036ce23cae2b6a06edd038 Reviewed-on: https://gerrit.libreoffice.org/79922 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:simplifyconstruct (clang-cl)Stephan Bergmann
Change-Id: I08da288a88c2bce1d4250ec77f17bd483e6bc09c Reviewed-on: https://gerrit.libreoffice.org/79911 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01crashreport: change addKeyValue to lower-case camelJuergen Funk
Change-Id: Ife5775d3a570da1fc2e4dd627456523705b64e1d Reviewed-on: https://gerrit.libreoffice.org/79601 Reviewed-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de> Tested-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
2019-09-26remove internal use of 16-bit packed formatsNoel Grandin
none of our supported hardware uses these any more Change-Id: Ic95d6df619a05df0bec1f5870596cb2bb3bcc6cb Reviewed-on: https://gerrit.libreoffice.org/79476 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-05consistently use RemoveScanlineCaolán McNamara
Change-Id: Iad0bbbf1e2a522778fe4a88632bd7cbce4e2008c Reviewed-on: https://gerrit.libreoffice.org/78661 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-09-04tdf#118314 Code clean up on imestatuswindowSzabolcs Toth
Change-Id: I8bc5a73a91f28fcfd22ef716e9cf87d53997b1ad Reviewed-on: https://gerrit.libreoffice.org/77337 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: László Németh <nemeth@numbertext.org>
2019-08-28tdf#127192 Printing in main threadJuergen Funk
the wollmux has change the dialogs form swing to the LO-Dialogs, and when printig with MS-PDF then LO hang on this line. The reason is wollmux run in it own thread, but this thread has no win-message-pump, when the printer-driver would open the FileSave-Dialog then it hangs, because the message-pump is missing in this thread. The swing has made it own win-message-pump for this thread. Change-Id: Ia5131464dcc5f166133a3302d29550e945dd1026 Reviewed-on: https://gerrit.libreoffice.org/78170 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Reviewed-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de> Tested-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
2019-08-27Consolidate ImplCalcLineSpacing()Khaled Hosny
Move getting UPEM and font tables to the functions and use HarfBuzz API to get them. In the future we might stop reading the tables ourselves and use HarfBuzz metrics API instead. Change-Id: I3f4511628fd33200bae94cdcd96479ba3e6d2fba Reviewed-on: https://gerrit.libreoffice.org/78081 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2019-08-23loplugin:returnconstval in vclNoel Grandin
Change-Id: Id4a0b460ba3c43e80b80ae6e2da9e40a6753e14c Reviewed-on: https://gerrit.libreoffice.org/77965 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-14tdf#124700 don't pull from or insert into cache for PixelSnapHairlineCaolán McNamara
Change-Id: I7ca0f556164b6bc462cee3c5532733dbd6b68a2b Reviewed-on: https://gerrit.libreoffice.org/77455 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-12Fix typosAndrea Gelmini
Change-Id: I38e23114a257d1baf2a9f36fd8ac0fcf8f3938b3 Reviewed-on: https://gerrit.libreoffice.org/77356 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2019-07-30tdf#62699 Drop (now) pass-through header include/vcl/salbtype.hxxGabor Kelemen
Change-Id: I2e2093ac3c8c6833b70d4932bc12a82a4483bde5 Reviewed-on: https://gerrit.libreoffice.org/76499 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-07-06Fix typoAndrea Gelmini
Change-Id: Id8f72781d0338344bc96efb5cf62b67174aa80eb Reviewed-on: https://gerrit.libreoffice.org/75152 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-07-06Constify GlyphItemJan-Marek Glogowski
This hides all the data, which shouldn't change after init. Real const makes a lot of problems for copying, so this is the 2nd option to just add getters for private data. While at it use typed_flags for the GlyphItemFlags. Change-Id: Ic1eeabe2398f6c30080fdd516285b72c620b11be Reviewed-on: https://gerrit.libreoffice.org/75147 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-07-05WIN get embedded font info from EnumFontFamiliesExJan-Marek Glogowski
Instead of some manual decoding of the .fot file, this extracts all the relevant information of the registered font using the default routines already used when enumerating the system fonts. We still have to extract the font family from the .fot file to know the registered family name of the embedded font. And it uses the OSL functions to create the temporary font resource file name and generally adds more SAL_WARNs when some part of the private font registration fails. Change-Id: I5e118bf1f3bc1fb7bbf4c68a383a45892dffaf98 Reviewed-on: https://gerrit.libreoffice.org/75102 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-07-05WIN separate LO shared and embedded fontsJan-Marek Glogowski
This way we can get rid of the embedded fonts without the reqirement to re-process all of LO's shared fonts. Change-Id: I25661a611d43ae05052e5cb9cc21e74ccd06b172 Reviewed-on: https://gerrit.libreoffice.org/75101 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-07-05WIN don't register LO's shared fonts twiceJan-Marek Glogowski
This separates the system registration (AddFontResourceEx) of LO's shared fonts from the later PhysicalFontCollection population using EnumFontFamiliesEx. Calling AddTempDevFont from GetDevFontList creates a new WinFontFaces, but the later EnumFontFamiliesEx also creates WinFontFaces for all registered fonts, resulting in duplicate WinFontFace entries in the PhysicalFontCollection. Also currently the provided WinFontFace from AddTempDevFont is much less accurate, compated to the EnumFontFamiliesEx one. Change-Id: I2cd8af77197429508d0a7112ff98706d7f449659 Reviewed-on: https://gerrit.libreoffice.org/75067 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-20Remove leftover from bitmap fonts support on WindowsKhaled Hosny
The condition "nFontType & RASTER_FONTTYPE" can never be true since we reject such fonts, so nHeight is always zero and we can simplify the code a bit accordingly. Change-Id: Ib3a19777909e16367c8168e86e474c1a5ee64a5b Reviewed-on: https://gerrit.libreoffice.org/74400 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2019-06-18VCL cleanup WidgetDrawInterfaceJan-Marek Glogowski
I don't understand why WidgetDrawInterface, which is basically a copy of the SalGraphics native controls interface, duplicated it, instead of cleaning things up. The whole commit message of commit 8fcfa3853a81, which added this code, is just: "custom widgets: Custom Widget Themes". That's it. So this patch does, what the original one skipped: replacing the SalGraphics interface with the WidgetDrawInterface. One result is the addition of handleDamage to SalGraphics to correctly handle the damage done by a custom widget theme to the underlying SalGraphics implementation. Change-Id: I5fda1a64b28e6560fb3c62e02b6dcda827f698e2 Reviewed-on: https://gerrit.libreoffice.org/74118 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-12Revert "improve empty tools::Rectangle (width)"Noel Grandin
This reverts commit a46a257794f1f53b294735fc876c394be23a3811. Too many issues, I'm going to try landing this in smaller pieces to make it easier to fix regressions Change-Id: Ie5e8979838017af86c119c887b580385ba068d54 Reviewed-on: https://gerrit.libreoffice.org/73859 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-07improve empty tools::Rectangle (width)Noel Grandin
This is the width part, the height part will come next. Instead of storing "empty" as a special value (which is easy to get wrong, eg. some image filters pass in that special value, expecting it to be a valid width), just use separate boolean values for width and height empty. Also lots of code was calling GetBottom() or GetRight() on an empty rectangle, getting back that magic value and doing calculations on it, resulting in completely bogus data. So (1) make the various Rectangle methods do something reasonable when the empty flags are set (2) fix various other code to handle empty better (3) assert when code accesses Bottom or Right and the empty flag is set. Change-Id: I1163378cd2773dd8b386210f83400bb6b4701069 Reviewed-on: https://gerrit.libreoffice.org/73564 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-13Make BitmapColor inherit from / merge into ColorJan-Marek Glogowski
BitmapColor itself is kept to distingish the Color usage as part of a color palette, which continues to store the offset in the blue value. The original special mbIndex handling is long gone since commit 1fefdd6f3b41 ("Alpha channel in BitmapColor - change bIndex to alpha"), so there is no data difference. This also results in the following changes: * now has a basic_ostream<charT, traits>& operator<< (that was my actual starting point... for an other bug fix) * there is a minimal difference for GetLiminance BGR(29,151,76) => BGR(28,151,77) * no more return values for Merge and Invert (previously returning *this) * replaces all GetBlueOrIndex with GetIndex This leaves one "problematic" part: the GetColorError handling. At first glance it should probably be virtual. The Color variant is less strict then the BitmapColor one - for whatever reason. BitmapColor is always used to search for the best match in a Palette. Currently I'm simply leaving both variants. Would be nice to have an explict for functions here. Change-Id: I251ba3024a1d60f2a9d9fde9cd0a60f08e8322a7 Reviewed-on: https://gerrit.libreoffice.org/72181 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-05-06Related: tdf#114209 vcl DirectWrite rotation: don't truncate to int degreesMiklos Vajna
Pointed out in the post-commit review of <https://gerrit.libreoffice.org/71592>, thanks Mike. Change-Id: I49006e041a5110e995af44b7437ba0b48c4c860d Reviewed-on: https://gerrit.libreoffice.org/71868 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins