summaryrefslogtreecommitdiff
path: root/vcl/win
AgeCommit message (Collapse)Author
2018-12-06vcl: split ImplIsPaletteEntry into low-level functionsDmitriy Shilin
Change-Id: I785d70cf05452ce3dbe209f595670d68b9653e22 Reviewed-on: https://gerrit.libreoffice.org/64668 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-12-06vcl: move SysColorEntry to anonymous namespaceDmitriy Shilin
Change-Id: Ib483decf4cd7d8ec5cb73a23c36181bd3e1d49c0 Relates: tdf#107792 Reviewed-on: https://gerrit.libreoffice.org/64661 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-05tdf#39593 vcl: extract SysColor list deletionDmitriy Shilin
Change-Id: I7d1b319a1cf551e1fd6b67f13f738ab42df1b77d Reviewed-on: https://gerrit.libreoffice.org/64591 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-12-05tdf#121719: Revert fix for tdf#96971Xisco Fauli
it's still used on Mac. Revert it until XOL is removed This reverts 258301879bcd20397c38bbd522dea2c923bd9fc2 Change-Id: I06548a590f370618ad640724a1b9c59a3faceec2 Reviewed-on: https://gerrit.libreoffice.org/64582 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-02tdf#120703 PVS: V560 A part of conditional expression is always true/falseMike Kaganski
Change-Id: Ia9c496ec93bedb13764969bf21c3f21d84caacef Reviewed-on: https://gerrit.libreoffice.org/64413 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-20Drop some headless mode variantsJan-Marek Glogowski
This fixes OSX "make debugrun" by dropping VCL_HIDE_WINDOWS handling and removing the internal GetPseudoHeadless() API. While at it moves the DialogCancelMode enum out of Application. Change-Id: I4876e752ddbfc39dd44faa673fb0e97810089a75 Reviewed-on: https://gerrit.libreoffice.org/61598 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-11-19tdf#42949 Fix IWYU warnings in include/vcl/[ab]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If18c80fc64e55d797953e24e40e5d5e62bd9c625 Reviewed-on: https://gerrit.libreoffice.org/63453 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-19Fix typosAndrea Gelmini
Change-Id: I6d51e4eb4a49a30193b904b2c7d62df1e16ea3d9 Reviewed-on: https://gerrit.libreoffice.org/63475 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-11-19Fix typosAndrea Gelmini
Change-Id: I0c966f517e337caa340526b48fa62b9910ce0a3e Reviewed-on: https://gerrit.libreoffice.org/63504 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2018-11-05tdf#118573: Acquire solar mutex when calling Application::RescheduleMike Kaganski
Change-Id: I252973ad5902738c2bb684f6bb70bc4c46500bae Reviewed-on: https://gerrit.libreoffice.org/62873 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-01clang-tidy: (WIP) bugprone-too-small-loop-variable findingsTamás Zolnai
Change-Id: Iaa255b39928ac45dec1ed37e368c149d6027f561 Reviewed-on: https://gerrit.libreoffice.org/62701 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2018-11-01loplugin:useuniqueptr in SalFrame::PostEventNoel Grandin
Change-Id: Ib066b1d6df90f330f2f93ec639bd7bc59a08c024 Reviewed-on: https://gerrit.libreoffice.org/62507 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-31loplugin:useuniqueptr in DeletePrinterQueueInfoNoel Grandin
Change-Id: Ia124a4af642e449dc05f5bae2d5ca766bd67bd68 Reviewed-on: https://gerrit.libreoffice.org/62388 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-30Move SalGraphics glyph functions into FontInstanceJan-Marek Glogowski
As we already rely on the GlyphItem's font instance, consequently this removes the SalGraphics GlyphItem based functions. Also unifies the glyph bound rect cache handling. An interesting aspect is the rotated glyph bounding box handling moved from CairoTextRender to FreetypeFont. It doesn't look like an implementation detail for Cairo, so it may have been a bug. Change-Id: I81bbb5d8ee98fb77a1eee05568c456f9e4553023 Reviewed-on: https://gerrit.libreoffice.org/62503 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-30Hide SalLayoutGlyphs detailsJan-Marek Glogowski
Nobody outside of VCL should deal with GlyphItems. Change-Id: Id84b0f320bc49f790658f23efe129b92262c2aea Reviewed-on: https://gerrit.libreoffice.org/62446 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-30Rely on the font instance of the glyphJan-Marek Glogowski
The FreetypeFont might already have released the font instance of the glyph, but the glyphs font instance must still be valid, so use this instead to cache glyph bound rect. For whatever reason the Windows compiler doesn't accept inline functions in the GlyphItem struct and wants to export them in the DLL, even when declared VCL_DLLPRIVATE, so this just uses static inlines as a workaround. Change-Id: I4539d91a846a54a05f9648638494e1e99f704b0a Reviewed-on: https://gerrit.libreoffice.org/62425 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-29tdf#120703 PVS: V547 Expression is always true/falseMike Kaganski
Change-Id: I0516dc68cf7d451eafc044be8e50a66d2bddf15f Reviewed-on: https://gerrit.libreoffice.org/62484 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-28tdf#120703 PVS: V547 Expression is always true/falseMike Kaganski
Change-Id: I2b2ea62ff4ed3e16cd4fa2a5e588d001d21121cb Reviewed-on: https://gerrit.libreoffice.org/62465 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-27tdf#120703 (PVS): V519 variable is assigned values twice successivelyMike Kaganski
V519 The 'xFontCharMap' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1673, 1674. Change-Id: I008c268bd2440e489d4cd50f94b4f04129589448 Reviewed-on: https://gerrit.libreoffice.org/62408 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-27tdf#120703 (PVS): V519 The variable is assigned values twice successivelyMike Kaganski
Change-Id: I9265425a215609ef6bf4298ba39c8399f215ce27 Reviewed-on: https://gerrit.libreoffice.org/62406 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-25Change GlyphItem::nFallbackLevel to font instanceJan-Marek Glogowski
No need for a real reference, as GlyphItems are bound to their GenericSalLayout, which holds the valid reference and doesn't allow font change. Change-Id: I8e1129ef99f576e43d55f39aee040ceeb635d51d Reviewed-on: https://gerrit.libreoffice.org/62359 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-25Move GlyphItem into its own headerJan-Marek Glogowski
Actually GlyphItem should be VCL internal, but this requires a transparent SalLayoutGlyphs (i.e. via pImpl), which I'm too lazy to implement currently. This seperation makes the affected source files more obvious and later migration of vcl/glyphitem.hxx easier. While at it apply the coding style and add '_' to member prefix. Change-Id: I61497af5c628c40f51597ce0ef286c47321acbc2 Reviewed-on: https://gerrit.libreoffice.org/62358 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-25Drop duplicate PhysicalFontFace referenceJan-Marek Glogowski
A LogicalFontInstance has a pointer to its parent font face. And don't pretend we can actually nest MultiSalLayout, so store the GenericSalLayout internally. Change-Id: I801acbc34497fc57e8e185eee34c1a1162dbea93 Reviewed-on: https://gerrit.libreoffice.org/62314 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-21pvs-studio: Not all members of a class are initialized inside the constructorCaolán McNamara
Change-Id: I914c715c96a6701995212fdb76615a19c984a128 Reviewed-on: https://gerrit.libreoffice.org/62113 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-10-20use std::unique_ptrCaolán McNamara
Change-Id: I8645d1d0776f7b7f2cd6e6d18f387210c6e126d9 Reviewed-on: https://gerrit.libreoffice.org/62068 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-10-19WIN fix CacheGlyphToAtlas resource handlingJan-Marek Glogowski
Use :comphelper::ScopeGuard to handle cleanup. And actually restore the original font on the correct DC. Change-Id: Ib59d430636b470486da2f8e5e34ed8d71b57aac2 Reviewed-on: https://gerrit.libreoffice.org/62010 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-14Simplify containers iterations in vclArkadiy Illarionov
Use range-based loop or replace with STL functions. Change-Id: Ide2f89194238ae6a1f21e8132e2297710d9e6dcd Reviewed-on: https://gerrit.libreoffice.org/61756 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-13use range based loops over B2DPolyPolygon in vclJochen Nitschke
Change-Id: I98f17311822ba50b0c8eaa50fbdef088c76168d4 Reviewed-on: https://gerrit.libreoffice.org/61730 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-10-07Fix typosAndrea Gelmini
Change-Id: Ia26896cbcd8912f7cad641ea2ecf14c4ddf2d741 Reviewed-on: https://gerrit.libreoffice.org/61489 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-10-06Support estimateUsageInBytes for SystemDependentDataArmin Le Grand
Change-Id: I6074035ed8f90e452915e9ecffdbe9363375e126 Reviewed-on: https://gerrit.libreoffice.org/61306 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-10-06tdf#119829 use font cache based glyph rect cacheJan-Marek Glogowski
The current glyph cache on Windows didn't work for multiple fonts and had to be manually invalidated on font change. The new glyph rect cache is coupled to the font cache and will invalidate all cached glyph rects, if a cached font is released. So switch to the new cache on Windows. Change-Id: Ic641f78e2e664dc0ad52e595d5fdfb6ef611eb3f Reviewed-on: https://gerrit.libreoffice.org/61278 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-06WIN rename GlyphCache to OpenGLGlyphCacheJan-Marek Glogowski
The Windows-backend based GlyphCache is OpenGL specific, so reflect that by renaming it. Change-Id: I1034bfde14792f0b6a807f8e938742556a31fcfb Reviewed-on: https://gerrit.libreoffice.org/61452 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-02Unify sal plugin loadersJan-Marek Glogowski
Change-Id: Ic099761eaff80349e985ccf62e3f4aa6b2e98022 Reviewed-on: https://gerrit.libreoffice.org/61103 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-02Implement Windows VCL backend as pluginJan-Marek Glogowski
Change-Id: If9c7c67f48311ac68ecc9f8e3a07f9bb7c73d962 Reviewed-on: https://gerrit.libreoffice.org/61101 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-24tdf#118690 don't try to process all messagesJan-Marek Glogowski
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 Bergmann
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 Grand
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 Grandin
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 Glogowski
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 Bergmann
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 Bergmann
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 Grandin
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 Grandin
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 Stahl
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 Gelmini
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 Grand
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 Bergmann
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 Glogowski
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 Nabet
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 Glogowski
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>