summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2017-07-19oss-fuzz: fix wmffuzzerCaolán McNamara
Change-Id: Idd6a03ed46161c6d35088401ae2816edc8a69f8b
2017-07-18tdf#109194 cleanse startup notification foo from envThorsten Behrens
So when the desktop environment does startup notification, this DESKTOP_STARTUP_ID gets passed on to the launched application. Problem is, XDG spec says app should read it from the env, then discard - which LibreOffice never does. When passed on to child processes, funny effects might ensue, so let's just erase this at the end of VCL init, when I'm reasonably sure every gtk/kde/whatnot backend did read it. Change-Id: I1f758c7a02455028d2b520c144ffe32538621f19 Reviewed-on: https://gerrit.libreoffice.org/40153 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-18try sleep instead of blocks annotationCaolán McNamara
Change-Id: I2d80ed40b5ec4c8db62053d8bb6c9d0c9ad24da2
2017-07-18Fix typosAndrea Gelmini
Change-Id: If6023dfa1d90f79185197622a738373a189ea6af Reviewed-on: https://gerrit.libreoffice.org/40118 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-07-18No reason to silently misbehave when these UNO services are missingStephan Bergmann
...which e.g. made it unnecessarily hard to track down 7a23668e4f4e235c7a4e1c99e38506bd9c874be8 "Fix CppunitTest_cppcanvas_emfplus" Change-Id: I2f537fabb067b77e82b900bd2cba30fd65c275aa
2017-07-18fix oss-fuzz buildCaolán McNamara
Change-Id: Ia279c7726f1bbf9cdfb6bdc481c884d56e9206c0
2017-07-18vcl pdf tokenizer: indentation fixesMiklos Vajna
These files had a consistent style before, let's keep them that way. Change-Id: I32cf4ae61d0fac37df5e5412ae9cf3e2b3c92d17
2017-07-18Clean up android specific template functions defined in std namespacebrainbreaker
Change-Id: I2094ee8eec00587f166d96723a02eb5957dbf79b Reviewed-on: https://gerrit.libreoffice.org/39890 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-07-18loplugin:constparams in vclNoel Grandin
Change-Id: I36afe2107e07ffb9b73c0b76be600e3e999a0fd4 Reviewed-on: https://gerrit.libreoffice.org/40116 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-17Remove duplicated includesAndrea Gelmini
Change-Id: Iba098ff1c96fb6f830e136102f687b345fb958ef Reviewed-on: https://gerrit.libreoffice.org/39981 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-07-17Fix typosAndrea Gelmini
Change-Id: I0fec2abc1bed9c0cfcd78d1b0f6daebc335831be Reviewed-on: https://gerrit.libreoffice.org/39982 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-07-17loplugin:unnecessaryparen: vcl (clang-cl)Stephan Bergmann
Change-Id: I3d31a5b56007451a9982602b488ae6ac1baf1f50
2017-07-17loplugin:implicitboolconversion: vcl (clang-cl)Stephan Bergmann
Change-Id: I81ae357574e5020a5e2dfb7162d451b985c18766
2017-07-17DWrite: resolve unreachable code warningTomaž Vajngerl
Change-Id: I5b9ffefcf8022366236328f0ca89982172b76feb Reviewed-on: https://gerrit.libreoffice.org/40021 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-07-17DWrite: HRESULT checks for debug modeTomaž Vajngerl
Change-Id: I4913b6e3d3c1766151571c467416e62409c8e260 Reviewed-on: https://gerrit.libreoffice.org/40020 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-07-17WIN revert to Sleep(1) for yieldJan-Marek Glogowski
There are multiple ways on Windows to yield a thread: * SwitchToThread: yields to any thread on same processor * Sleep(0): yields to any thread of same or higher priority on any processor * Sleep(1): yields to any thread on any processor So we stay with Sleep(1), as it also seems the only call, which actually does some sleep and is not a busy wait. Change-Id: I85c69b2f32dba9869bbddc1a572b3a63c366c5d1
2017-07-17WIN annotate GdiPlusBuffer TimerJan-Marek Glogowski
Change-Id: Ia7aa081848647314e14b5ccd3063d51700f2b6c6
2017-07-17DWrite: move impl. of some methods to the cxxTomaž Vajngerl
Change-Id: I34b4163176dc5a4a8f5cd326918df375c3475a1a Reviewed-on: https://gerrit.libreoffice.org/40019 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-07-17factor out DWrite renderer from winlayoutTomaž Vajngerl
Change-Id: I7093d86593677a7d15f5b7f55aa0f29be2154f5a Reviewed-on: https://gerrit.libreoffice.org/40018 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-07-17extend loplugin useuniqueptr to OUString pointersNoel Grandin
Change-Id: Ieb5bab3895e1edaff497c4a1a88303ccac097edc Reviewed-on: https://gerrit.libreoffice.org/39948 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-16vcl: use svl signing and remove moved codeAshod Nakashian
Change-Id: Id875a675d7ab649c9223ecca5de2da69ff4b8786 Reviewed-on: https://gerrit.libreoffice.org/39718 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2017-07-15tdf#38915: don't wait on message queue if application already has quit.Mike Kaganski
Despite precautions in Application::Execute() and ImplYield(), in my testing I sometimes see that soffice is waiting in ImplSalYield()'s GetMessageW() when ImplGetSVData()->maAppData.mbAppQuit is true, so that soffice.bin hangs in the background. I suspect that this is related to the bug. Some obscure code path seems to be able to get here after the flag is already set. So, test also in ImplSalYield() right before GetMessageW() to make sure. Another possibility is that we get here when the flag is not set yet, and gets set while already waiting, but that would mean this happens in a different thread. Change-Id: Idb19eabcca8b5c24eac0ca76950edc1bf1e5bccb Reviewed-on: https://gerrit.libreoffice.org/39996 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-07-15the font installation code is now controlled by ENABLE_GIOMarkus Mohrhard
Found by the random config linux tb. Change-Id: I86921dedb5c8bacc5131e6dd66df86cb028edaf3 Reviewed-on: https://gerrit.libreoffice.org/40001 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-07-15coverity#1415093 annotate Waiting while holding a lock as deliberateCaolán McNamara
Change-Id: I88146737b1a1480c9ed1207896b0343dc982784a
2017-07-15coverity#1415095 annotate Infinite loop as false positiveCaolán McNamara
Change-Id: I030a6bee3864e758177ce73b678ba22cd10ec217
2017-07-15emfplus: corrections for UnitTest in vclArmin Le Grand
The CppunitTest_vcl_filters_test was not working due to a wmf file now being loadable. This leaded to better check errors on stream and react on it in test code. Hrad to find since that test - for whatever reason - is not executed on win. Also need to check result of EmfReader. Added emfio to test's module list Change-Id: Iea2b835408e919a8456e8f178cbfc782885ffebb
2017-07-15emfplus: UnitTests and gerrit build correctionsArmin Le Grand
Needed to migrate UnitTest for Emf/Wmf import from vcl to emfio. Corrected stuff based on gerrit build feedback Change-Id: I7fd2456f814ea19583072ba09730a07e9b9d4061
2017-07-15emfplus: unified transformations, added test codeArmin Le Grand
More unifications, changed all Map*() methods to use a single B2DHomMatrix which is created based on former stuff, XForm now completely replaced. To check, added debug-only code and switches to the VclPixelProcessor so that visual checks get easy when using these modes (overlay of both methods with modded colors). Also resynched to master. Change-Id: I7b749f90bfde2ec1c2e49ee90ca2ef368da0547e
2017-07-15emfplus: completed isolation/migration of Emf/WmfArmin Le Grand
Decided to keep the migrated/isolated Emf/Wmf reader which are now hidden behind a Uno Api. Had to re-implement WMF_EXTERNALHEADER (now WmfExternal, own file/header) to not break anything. It *seems* to just scale something and could be done after import, but I could not be sure. Also needed a callback hook to allow getting the Metafile out of a MetafilePrimitive in a lower module (vcl relative to drawinglayer) which is needed as long as primitives are not completely on Uno Api. Deleted all Emf/Wmf reader stuff from vcl. Change-Id: Ic5540defa8ec770728280df4df3f12e1f48cfc3a
2017-07-15emfplus: make VectorFormats Emf/Wmf/Svg workArmin Le Grand
make complete turn around and internal buffering for Emf/Wmf/Svg work, including images in ODF and re-save from UI. The correct FileType has to be determined. It has shown that *.wmf exist that really contain *.emf, so this turn around will not alter the binary data, but may change the mimetype Change-Id: I4fd92629236c12114f7b7c30234a3d3a9917dfaf
2017-07-15emfplus: create a wmf/emf/emf+ primitive based importerArmin Le Grand
First steps to organize an importer that can read/interpret wmf/emf/emf+ and deliver a primitive representation for the content by parsing it. Use the same mechanisms as already applied for Svg, so to reuse abilities to keep original binary data to allow save again and embedding in files and have an implemented replacement bitmap based representation. For this, unify the used helper classes to handle more than just Svg. For 1st try, add test code and static bool switches Change-Id: I6e0a82943541d811a8f8d65a84115569fcd8cee7
2017-07-14Fix instant 0ms scheduler wakeup for headlessJan-Marek Glogowski
This is a regression from commit 503eba23c9a199583eddee9e169a4fddbecf416f Due to rounding errors, as the Scheduler uses milliseconds, but the headless backend uses nanoseconds the StartTimer assumed it would wake up this ms, but the headless check function would still wait. This is more of a workaround, so instant wakeup for the headless backend works again. Change-Id: I2ba9b4ad2b67ec99eeb4dd098ded6457d3753127
2017-07-14vcl: fix -Werror=format (32-bit GCC)Michael Stahl
Change-Id: Ia7afb5b9750704797ff8030688d0531c27d80836
2017-07-14use more OUString::operator== in test..xmlsecurityNoel Grandin
Change-Id: If5bdd1532be44a47ff7cc3b769be3ea585aea562 Reviewed-on: https://gerrit.libreoffice.org/39685 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-14vcl: If we fail to create an OpenGLContext for a window - don't crash.Michael Meeks
Change-Id: I362724911ac60df7ac699495bac852be9e7c6b13 Reviewed-on: https://gerrit.libreoffice.org/36684 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
2017-07-14extend loplugin useuniqueptr to POD typesNoel Grandin
Change-Id: I6ff24f048bd8f75bf87a78b718f37b57855d4781 Reviewed-on: https://gerrit.libreoffice.org/39932 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-14loplugin:useuniqueptrStephan Bergmann
Change-Id: Idcfec3e33031eea311377a51f51c65dd3c4d25dc
2017-07-14UI Test idle needs to run with highes priorityMarkus Mohrhard
regression from 00aa0892e7385cd8395dd39814077958be42e720 Change-Id: I840391573ae52be6ba4a34b2a802b637578afa40
2017-07-13tdf#107166 BindDC doesn't handle 0 width/height rect consistentlyTomaž Vajngerl
When binding a GDI device context to D2D we need to provide a rectangle where the surface will have effect. When we just need some font information we need to bind the DC too, but we aren't really interested what the rectangle is, so we just provided a 0,0,0,0 rectangle in that case. This sometimes fails with a "out of memory" result and is dependent on the renderer. Instead of 0,0,0,0 rectangle we rather define a 0,0,1,1 rectangle which should never fail. This is not problematic as for actual rendering we later rebind with an actual rectangle. Change-Id: I79c7f0cf4d69f213370ed26a811a908ed16070ff Reviewed-on: https://gerrit.libreoffice.org/39901 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins <ci@libreoffice.org>
2017-07-13GTK+ convert to a single-shot timerJan-Marek Glogowski
Simplified version of commit 3e20ce802ee2ab49c4f2a98880f6e999657686bb Since we're missing g_source_get_ready_time in our baseline, this can't change the complex implementation, but still drops the timer array and uses a single-shot timer, like all other backends. Change-Id: I0641da8d0db71785c505957533a9069924808cd4
2017-07-13tdf#104883 Don't call InstallFontconfigResources if it's not availableSamuel Mehrbrodt
We need to call it once because we have no other way to detect whether it's working or not. But if we receive an error the first time, we disable it from now on. Change-Id: I67dba8b65660ff7e05bdf2ddc18b565550901cd1 Reviewed-on: https://gerrit.libreoffice.org/39885 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2017-07-13Revert "GTK+ simplifiy system timer implementation"Jan-Marek Glogowski
Current LO baseline doesn't have g_source_get_ready_time, so we keep the old stuff. This reverts commit 3e20ce802ee2ab49c4f2a98880f6e999657686bb. Change-Id: I32c39fa70c8d52cbb78620f528d60a986087dfd0
2017-07-13unused ResMgrCaolán McNamara
Change-Id: I0bb25a89ddc76c91d01d1cee785be0337eb1f1d0 Reviewed-on: https://gerrit.libreoffice.org/39897 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-13ofz#2287 check multiplyCaolán McNamara
Change-Id: Ibc4c93ac1f5686a476b5e303347dc951daa58e33 Reviewed-on: https://gerrit.libreoffice.org/38909 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-13WIN shorten DoYield by using existing functionsJan-Marek Glogowski
This also adds an sal_uLong nCount parameter to ImplSalYieldMutexAcquireWithWait, so it can be called like ImplSalAcquireYieldMutex and actually uses the result from the deferred DoYield. Change-Id: Ie3b466ad03e7ed8c35a62f41c09d09757865364d
2017-07-13Reorganize Scheduler priority classesJan-Marek Glogowski
This is based on glibs classification of tasks, but while glib uses an int for more fine grained priority, we stay with our enum. 1. Timers start with DEFAULT priority, which directly corresponds with the previous HIGH priority 2. Idles start with DEFAULT_IDLE priority instead of the previous HIGH priority, so idle default becomes "really run when idle". As RESIZE and REPAINT are special, and the DEFAULTS are set, there is just one primary decision for the programmer: should my idle run before paint (AKA HIGH_IDLE)? If we really need a more fine-grained classification, we can add it later, or also switch to a real int. As a result, this drops many classifications from the code and drastically changes behaviour, AKA a mail merge from KDE is now as fast as Gtk+ again. Change-Id: I498a73fd02d5fb6f5d7e9f742f3bce972de9b1f9
2017-07-13Drop Task::ReadyForScheduleJan-Marek Glogowski
All relevant information is also provided by UpdateMinPeriod and the calculations were even duplicated. This also includes dropping Scheduler::UpdateMinPeriod, as this is now reduced to a simple comparison and assignment, as we simply ignore larger returned sleep times. Change-Id: I13852e3e63daead451bf7fcb98be9b1d44bd7abd
2017-07-13Remove duplicated delete informationJan-Marek Glogowski
Task::mbActive already stores the inverse information of ImplSchedulerData::mbDelete, so we can drop the latter one. Change-Id: I57f8c23ca1eebdeed780a644c83fcbeb9b92cd66
2017-07-13Run LO scheduler only via system timerJan-Marek Glogowski
Change-Id: I5283f18aebcd6797ad35771ae8fc4a0f425ff924
2017-07-13OSX fix empty message queue handlingJan-Marek Glogowski
For some (unknown) reason [NSApp postEvent: ... atStart: NO] doesn't append the event, if the message queue is empty (AKA [NSApp nextEventMatchingMask .. ] returns nil). Due to nextEventMatchingMask usage, these postEvents have to run in the main thread. Using performSelectorOnMainThread deadlocks, since the calling thread may have locked the Yield mutex, so we simply defer the call using an NSEvent, like the Windows backend. So we have to peek at the queue and if it's empty simply prepend the event using [.. atStart: YES]. In the end this make the vcl_timer unit test pass on OSX. Change-Id: Ib41186425b2f76faa0e9f116f47fdcd60d878099