summaryrefslogtreecommitdiff
path: root/vcl/win
AgeCommit message (Collapse)AuthorFilesLines
2018-09-24tdf#118690 don't try to process all messagesJan-Marek Glogowski1-1/+6
Regression from commit 221b0ab1245b ("WIN use Reschedule instead of own dispatch loops"). This limit the maximum reschedule loops as the original code did. There is still a busy loop when opening the print dialog, as it was before the patch, but this at least gets printing started. Change-Id: If867329b82b13c898bb15b08584244084488a66c Reviewed-on: https://gerrit.libreoffice.org/60310 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-24loplugin:external (clang-cl)Stephan Bergmann9-29/+29
Including: * expanding STDAPI to its definition (as per <https://msdn.microsoft.com/library/ms686631(vs.85).aspx> "STDAPI"), to add __declspec(dllexport) into its middle, in extensions/source/activex/so_activex.cxx; as discussed in the comments at <https://gerrit.libreoffice.org/#/c/60691/> "Get rid of Windows .def files in setup_native, use __declspec(dllexport)", having a function both listed in a .def file EXPORTS and marking it dllexport is OK, and the latter helps the heuristics of loplugin:external; however, the relevant functions in extensions/source/activex/so_activex.cxx probably don't even need to be exported in the first place? * follow-up loplugin:salcall in sal/osl/w32/file-impl.hxx Change-Id: Ida6e17eba19cfa3d7e5c72dda57409005c0a0191 Reviewed-on: https://gerrit.libreoffice.org/60938 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-21Support buffering SystemDependent GraphicDataArmin Le Grand1-12/+19
Started to make the buffering more flexible by adding virtual methods virtual sal_uInt32 getHoldCyclesInSeconds() const; virtual sal_Int64 estimateUsageInBytes() const; to class SystemDependentData. This will allow to add more sensitive buffering/caching. Also fine-tuned Linux-derived classes actively used for buffering to be more sensitive when and where to reuse the buffered data Change-Id: Ifc69c318ade0209aff071d76001869d9f4eeb10d Reviewed-on: https://gerrit.libreoffice.org/60881 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-09-19loplugin:useuniqueptr in GetTTSimpleGlyphMetricsNoel Grandin1-9/+9
and only return the advance, we don't use the other field Change-Id: I956033dac97763caea2b27404fe9f099da809899 Reviewed-on: https://gerrit.libreoffice.org/60703 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-18Move yield mutex handling into SalInstanceJan-Marek Glogowski1-24/+8
After the refectoring in commit 4c93de2c921b ("merge GenericSolarMutex and SolarMutex"), there is no more need to prevent instantiation of comphelper::SolarMutex objects. Since every VCL backend implements the yield mutex management in the same way, we can move the general implementation into the SalInstance. While at it use std::unique_ptr for the yield mutex on Mac and Windows platforms. Change-Id: Ibe0610bd92b4623152ee14e7a35b52465d403720 Reviewed-on: https://gerrit.libreoffice.org/60570 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-17loplugin:simplifyconstruct (clang-cl)Stephan Bergmann1-1/+0
Change-Id: I7cae6b3f31b10efc72884bce4bda7bf6b380cbc2 Reviewed-on: https://gerrit.libreoffice.org/60597 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-17-Werror,-Wshadow (clang-cl)Stephan Bergmann1-1/+0
Change-Id: I14040fd236d399bfce6c4e6e6927a00aabe5b2c5 Reviewed-on: https://gerrit.libreoffice.org/60595 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-14loplugin:constfields in vclNoel Grandin1-5/+2
Change-Id: I1072642be4fdfa720e61f2d7bad3c2701eb81610 Reviewed-on: https://gerrit.libreoffice.org/60430 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-14make WinFontInstance take and return a WinFontFaceNoel Grandin2-4/+4
to make the handling more explicit here Change-Id: I934fcc7b0da8a160acd904440f18fc6c01ec1ad3 Reviewed-on: https://gerrit.libreoffice.org/60475 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-13vcl: revert verbose WNT font loggingMichael Stahl1-6/+6
Revert 656bef6ce3626769bd59fc7c46d781af512dfe0e to use SAL_INFO again, as there are few if any font related test failures now. Change-Id: If91908b93394790eb5d0615508e1f64f83f2f9c6 Reviewed-on: https://gerrit.libreoffice.org/60438 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2018-09-13Fix typosAndrea Gelmini1-2/+2
Change-Id: I1ee620200a285936159fed57d0cbbf5320e7d3ec Reviewed-on: https://gerrit.libreoffice.org/60429 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-09-13Support buffering SystemDependent GraphicData (II)Armin Le Grand4-79/+177
In this step I have changed all calls that use a B2DPolyPolygon and do filled graphics, added support for providing needed transformation which will -if supported- be used. Added buffering of SystemDependentData at B2DPolyPolygon for that purpose, see comments describing the current possibilities in the Gdiplus implementation. Moved lifetime creation/cleanup of SystemDependentDataManager to ImplSVData due to cleanup problems in the clang build Tried to use a std::unique_ptr to hold the instance of a SystemDependentDataBuffer at ImplSVData and cleanup inside DeInitVCL() right before ::ImplDeInitScheduler. This works in principle, but scheduler shutdown triggers ProcessEventsToIdle which leads to repaints and re-creates the buffer. Will now do exactly as was done with GdiPlusBuffer before, a simple local static incarnation and a call to SetStatic() in constructor Splitted SystemDependentDataBuffer and Timer due to different LifeTimes. Timer needs to be destructed earlier than SystemDependentDataBuffer, before Scheduler::ImplDeInitScheduler() is called from DeInitVCL() Change-Id: I2134e4346a183a4cee1be3428c51541cc8867c11 Reviewed-on: https://gerrit.libreoffice.org/60102 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-09-11loplugin:unnecessaryoverride (clang-cl)Stephan Bergmann2-10/+0
Change-Id: If20c05de5521ff2121da4b5973dcf15697bafe95 Reviewed-on: https://gerrit.libreoffice.org/60325 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-11tdf#119756 assume the HFONT is always validJan-Marek Glogowski1-3/+2
This is a regression from the commit 7cb3e475f2fb ("WIN add SalGraphics* to WinFontInstance"). We need a sensible way to compare the SalGraphics / HFONT. I'm not sure how to implement this yet, so just assume unchanged, as the old code did. Change-Id: I828a41e529976c500eedaef3afd40cf20287f746 Reviewed-on: https://gerrit.libreoffice.org/60256 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-09cppcheck: fix arrayIndexThenCheck (vcl/salfont)Julien Nabet1-1/+1
Change-Id: Ia530a5947ef5b0718c7076367317c661155c6691 Reviewed-on: https://gerrit.libreoffice.org/60226 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-09-07Fix some std::unique_ptr array allocsJan-Marek Glogowski2-3/+3
Found by reviewing the output of and the code around git grep -n "unique_ptr.*new.*\[.*\]" | grep -v "\[\]" The onlineupdater code needs a little bit more attention. Change-Id: I8b70c7da7db60af52bfac12314a21602ede8bfc0 Reviewed-on: https://gerrit.libreoffice.org/60162 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-09-07WIN add SalGraphics* to WinFontInstanceJan-Marek Glogowski2-16/+21
HFONT lookup in ImplDoSetFont depends on the mbVirDev of the WinSalGraphics. Since we need too look up HFONTs for SalLayout without changing the corresponding SalGraphics, add a pointer to the WinFontInstance. Change-Id: Idb6573ce7267f0019c2183be47621d0eaef8e57b Reviewed-on: https://gerrit.libreoffice.org/60093 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-07WIN drop mhFonts[MAX_FALLBACK]Jan-Marek Glogowski2-44/+17
Everything now uses the HFONT from WinFontInstance, so there is no need for the additional fallback array. Change-Id: I15a197b262633569cb95c37689561db5323e1115 Reviewed-on: https://gerrit.libreoffice.org/60092 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-06tdf#119302 WIN better font scale handlingJan-Marek Glogowski2-18/+30
Moves the scale factor into the LogicalFontInstance and uses the Glyphs font fallback level to use the correct font and scale. Probably the glyphs should be using a rtl::Reference to the LogcalFontInstance instead of the fallback level. I don't know if glyphs are evicted from the cache, if the fallback changes. There is now an assert and all places will use 1.0 as the default scaling factor, so LO should at least not crash. Change-Id: I9dd4fc3a5b5924fc379b48a7f71c9eed26b4779d Reviewed-on: https://gerrit.libreoffice.org/60091 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-04tdf#119340 WIN don't always re-init the HFONTJan-Marek Glogowski1-20/+18
After all the LogicalFontInstance refactoring, its FontSelectData is now immutable, so the HFONT will never need to be changed. Therefore we can skip the HFONT lookup in WinSalGraphics::SetFont, if the WinFontInstance already has it set. All the HFONT handling (basically WinSalGraphics::ImplDoSetFont) should be moved to the WinFontInstance to further clean this up. Change-Id: I1c9a9e3414677d77f0f007d7ace653bb53b8474d Reviewed-on: https://gerrit.libreoffice.org/59988 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-30Support buffering SystemDependent GraphicDataArmin Le Grand4-227/+291
This is a first step to allow buffering of system dependent data, especially (but not only) for the system-dependent implementations of graphic output. For example, for B2DPolygon and Win output, it allows buffering the Gdiplus::GraphicsPath instead of re- creating it all the time. To support that, the change includes forwarding the current transformation to the renderers in SalGraphics. The current state in VCL is to transform all and everything to device coordinates at every single paint. I have currently started to do this for ::drawPolyLine implementations. The fallbacks for all systems will at the start of that method just transform the data to device coordinates, so all works as before. This may also be done for FilledPolygon paint in a later step, but most urgent is FatLine painting. An arrangement of shared_ptr/weak_ptr is used so that either the instance buffering (in the example B2DPolygon) or the instance managing it can delete it. The instance managing it currently uses a 1s Timer and a cycle-lifetime management, but that can be extended in the future to e.g. include size hints, too. The mechanism it designed to support multiple Data per buffering element, e.g. for B2DPolygon at the same time system-dependent instances of Gdiplus and Cairo can be buffered, but also PDF-data. This is achieved semi-automatic by using typeid(class).hash_code() as key for organization. The mechanism will be used for now at B2DPolygon, but is not limited to. There is already a similar but less general buffer (see GdiPlusBuffer) that can and will be converted to use this new mechanism. Added vcl/headless Cairo renderer to support given ObjectToDevice transformation (not to transform given B2DPolygon) Added support for CairoPath buffered at B2DPolygon, seems to work well. Need to do more tests Moved usage to templates suggested by Noel Grandin (Noel Grandin <noelgrandin@gmail.com>), thanks for these suggestions. Adapted Win usage to that, too. Converted Win-specific GdiPlus BitmapBuffer to new mechanism, works well. Checked, the manager holds now a mix of bitmap and path data under Win Added a cleanup mechanism to flush all buffered data at DeInitVCL() using flushAll() at SystemDependentDataBuffer Adapted Linux-versions of ::drawPolyLine to support PixelSnapHairline, for now in a simplified version that still allows buffering. This will also be used (and use buffering) for the Cairo-fallback in X11SalGraphics Change-Id: I88d7e438a20b96ddab7707050893bdd590c098c7 Reviewed-on: https://gerrit.libreoffice.org/59555 Tested-by: Armin Le Grand <Armin.Le.Grand@cib.de> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-08-29replace rtl_allocateMemory with std::mallocNoel Grandin1-21/+21
where used directly, since rtl_allocateMemory now just calls into std::malloc Change-Id: I59f85bdb7efdf6baa30e8fcd2370c0f8e9c999ad Reviewed-on: https://gerrit.libreoffice.org/59685 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-27WIN use the SetTimer timer as one-shotJan-Marek Glogowski1-2/+9
SetTimer is a continuous timer, but we want to use it as a one-shot, so make sure we actually kill it when not needed. Change-Id: If6f5374346dc530eb664545ade2c2955885941b5 Reviewed-on: https://gerrit.libreoffice.org/59589 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-27WIN ignore the timer resultsJan-Marek Glogowski2-8/+6
Nobody else will handle our scheduler or WM_TIMER event, so there is really no point to return any error value from the handlers to some lower level function. Change-Id: I33eac11076a30220cfa11cec8f352bd5c8b69209 Reviewed-on: https://gerrit.libreoffice.org/59588 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-24tdf#118786 WIN just assert in YieldJan-Marek Glogowski1-12/+10
This reminds me - again - that Jenkins doesn't run make check. It turns out InSendMessage() also returns true, if you process a nested SendMessage in the same thread. Therefore we have to remove the SalComWndProc assert and just keep the one in the Yield call. Why? Because there seem to be no way to get the information ReplyMessage has access to, so we could detect the caller / origin of the send message and implement proper nested call checks. The alternative would be to change all call sites of SendMessage to: if ( !pSalData->mpInstance->IsMainThread() ) SendMessage(...) else SalComWndProc(...) which is the same SendMessage already does. Change-Id: I991d68a64952dc5d47ba51edd8635c9e8c46614c Reviewed-on: https://gerrit.libreoffice.org/59538 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-23loplugin:cstylecast (clang-cl)Stephan Bergmann1-2/+2
Change-Id: If33fb9d046ea7d54af16a14a77c76c2e173c0a63 Reviewed-on: https://gerrit.libreoffice.org/59499 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-22arg is never nullCaolán McNamara2-16/+16
Change-Id: Ifde85786e9e0b0d9c1bdb1163b7c4a0889005323 Reviewed-on: https://gerrit.libreoffice.org/59386 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-22rename FontSelectPatternAttributes to FontSelectPatternCaolán McNamara2-18/+18
Change-Id: I2c018e2e61707c0d89178b0cb38a0918906e23cb Reviewed-on: https://gerrit.libreoffice.org/59390 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-22turn the cache around to work on LogicalFontInstanceCaolán McNamara2-2/+2
instead of a FontSelectPattern with an associated LogicalFontInstance use a LogicalFontInstance with owned FontSelectPatternAttributes Change-Id: I939f84731fcb8db5ff6484dcfbd2f9199bb50d23 Reviewed-on: https://gerrit.libreoffice.org/59388 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21change FindFontSubstitute to operate on FontSelectPatternAttributesCaolán McNamara1-4/+4
it remains to be seen if we need the the returned mpFontInstance of the coretext impl Change-Id: I48f73188250c3eb014f16ffe0a735191da5cb25b Reviewed-on: https://gerrit.libreoffice.org/59322 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21can now use just FontSelectPatternAttributesCaolán McNamara1-11/+11
Change-Id: I1857afa0a9aff39118ba3c242134985f865e37c1 Reviewed-on: https://gerrit.libreoffice.org/59387 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21pass GetFontFace at call siteCaolán McNamara1-4/+1
Change-Id: Id2677cdc386e51ae1549c548c06d095ad0f43b40 Reviewed-on: https://gerrit.libreoffice.org/59385 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21use LogicalFontInstance with SalGraphicsCaolán McNamara1-8/+8
Change-Id: I66fb1ff4b2fdcc211e0a9d5831f6dcc5e564e789 Reviewed-on: https://gerrit.libreoffice.org/59372 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21use ImplDoSetFont instead of SetFontCaolán McNamara1-1/+4
i.e. the same pattern as CreateFontSubset and GetGlyphWidths Change-Id: Ie90d7279c4debe47b4d2739e12cdae86f4e70517 Reviewed-on: https://gerrit.libreoffice.org/59403 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21only need FontSelectPatternAttributes hereCaolán McNamara1-1/+1
Change-Id: I101ebf470e3635815a445ef761afc62e9d4c70f0 Reviewed-on: https://gerrit.libreoffice.org/59383 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-20tdf#118994 JAWS has no access to accessibility objectsIlhan Yesil1-3/+6
According to the MSDN, lParam must be cast to DWORD when examining WM_GETOBJECT messages on 64-bit Windows. The MSDN example also casts wParam, so in this solution, lParam and wParam are cast to the appropriate types sal_Int32 and sal_uInt32. Change-Id: I1edc00778c7da91d2baf5784e4c3f8c441e42eab Reviewed-on: https://gerrit.libreoffice.org/58312 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2018-08-20TODO: refcount ImplFontListCaolán McNamara1-1/+1
Change-Id: Ie125f1ac9c14a41e25c3e54beafca2f9e34e4c6f Reviewed-on: https://gerrit.libreoffice.org/59310 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-20tdf#118786 WIN allow nested SendMessage callsJan-Marek Glogowski2-16/+34
This bug trips "assert( !pInst->mbNoYieldLock )". There is already a special case, introduced in commit 4baec725e0dc ("WIN run main thread redirects ignoring SolarMutex"), to prevent tripping the assert for a nested SendMessage call. So this implements a general solution for nested SendMessage calls. We just have to prevent yielding in a call from an other thread, as the sending thread still owns the SolarMutex. This way we can also drop the special handling in WinSalFrame::ReleaseFrameGraphicsDC. Change-Id: I7024b081b26f3545af12a3a3a038fe5e5671af3c Reviewed-on: https://gerrit.libreoffice.org/59275 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-07-31Add missing sal/log.hxx headersGabor Kelemen12-0/+12
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directory vcl Change-Id: I205fe0f4e80a66cd9c3b19f7e9716411da1d1cf5 Reviewed-on: https://gerrit.libreoffice.org/58221 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-26Missing includes (Windows --disable-pch)Stephan Bergmann1-0/+1
Change-Id: Iea067e3529de9208bd0a00c276eb03858816bd00 Reviewed-on: https://gerrit.libreoffice.org/57996 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-25-Wc++11-narrowing (clang-cl)Stephan Bergmann2-4/+4
...from 'int' to 'FLOAT' (aka 'float') Change-Id: I999fc322d0ace0d32c675a22337077d7a95eed3c Reviewed-on: https://gerrit.libreoffice.org/58006 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-25loplugin:sallogareas (clang-cl)Stephan Bergmann1-6/+6
Change-Id: Id3f41fe72487a1e38ead75c8df6307edd1c3ccab Reviewed-on: https://gerrit.libreoffice.org/58005 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-20Fix typosAndrea Gelmini1-1/+1
Change-Id: Ia3e6f17217b837517faa588ea7f2e72dc5aff6aa Reviewed-on: https://gerrit.libreoffice.org/57767 Tested-by: Jenkins Reviewed-by: Jens Carl <j.carl43@gmx.de>
2018-07-16cppcheck: useInitializationList in vclJochen Nitschke1-1/+1
reorder members of GIFLZWDecompressor to ease initialization. use rtl_allocateZeroMemory in ImplVectMap to avoid memset in ctor. Change-Id: Icfcfe73ec7e52988036995d8dbc604361aee893b Reviewed-on: https://gerrit.libreoffice.org/57481 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2018-07-10Revert "tdf#117517: Fix OpenGL text rendering on Windows"Jan-Marek Glogowski1-3/+21
This actually breaks the OpenGL glyph cache, which forced a full redraw all the time working around the original problem, which is now fixed with commit fad862e290d727fc9fefe206f6e4b807482c4175. This reverts commit c5f8a296fcfc08f8ac441cb8300a7565caa50b53. Change-Id: Ibfc5a24dfc157c42b4cf796b35101191e88a6d15 Reviewed-on: https://gerrit.libreoffice.org/57221 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-07-09WIN GetFontMetric doesn't matter for GetEmbedFontDataJan-Marek Glogowski1-20/+3
so there should always be a valid mpWinFontEntry[nFallbackLevel]. Change-Id: I27f7a5a72c50d10a88538d02f1510f583ae6df35 Reviewed-on: https://gerrit.libreoffice.org/57192 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-07-09tdf#118555 fix HFONT fallback handing / lifecycleJan-Marek Glogowski2-37/+71
Instead of storing the never changing DC in the WinFontInstance store the HFONT, which is Windows logical font instance. Then set the correct HFONT instance from the layout when rendering its text. This also changes the HFONT ownership and lifecycle. The HFONT is moved from the mhFonts to the WinFontInstance, if available, so it has a proper referenced lifecycle. The mhFonts is still needed, as embedded font just supply an HFONT and no WinFontInstance. Change-Id: Iba62281c710290276f004f0c0177e6d37c849d2c Reviewed-on: https://gerrit.libreoffice.org/57101 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-07-05vcl: experiment for font related test fails on WNTMichael Stahl1-3/+8
Change-Id: I7471299c1f0d4c0431e9b896cd2fbf5a056f31f8 Reviewed-on: https://gerrit.libreoffice.org/56892 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-06-21merge GenericSolarMutex and SolarMutexNoel Grandin1-4/+4
Since nothing else is implementing the SolarMutex abstract class. Change-Id: I2a41254af3e9c7534033cdd0bece9dd8e0258b9d Reviewed-on: https://gerrit.libreoffice.org/56153 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-14return SalBitmap using std::shared_ptrNoel Grandin4-10/+9
since we hold it like that in Bitmap anyway Change-Id: I6264dfaaae6210cb008df5db8a421fc80c508f5b Reviewed-on: https://gerrit.libreoffice.org/55458 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>