summaryrefslogtreecommitdiff
path: root/vcl/quartz
AgeCommit message (Collapse)Author
2018-06-29This cast seems completely unnecessary to me?Tor Lillqvist
Change-Id: I93a135afc1402d9095828c4d41d669471a37f565 Reviewed-on: https://gerrit.libreoffice.org/56661 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2018-06-29tdf#117335 Fix displaying GIF imagesBartosz Kosiorek
To fix regression the sal_uInt16 was used instead of sal_uInt8. Verified on macOS High Sierra 10.13.5. I also checked if with this fix, there is no issue with displaying EMF (tdf#113197) Sample document from tdf#113197 is displaying correctly. Change-Id: I6504717d831a193b0a878ced2f335d34a993aed6 Reviewed-on: https://gerrit.libreoffice.org/56578 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2018-06-27This should be a const NSString* so that we can pass such variables to itTor Lillqvist
Change-Id: I017c100f83faac64ad3a8430010c226b438e6a07 Reviewed-on: https://gerrit.libreoffice.org/56529 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-14return SalBitmap using std::shared_ptrNoel Grandin
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>
2018-06-11drop PhysicalFontFace::CloneNoel Grandin
since we are now holding these via reference counting, no need to clone them Change-Id: I7b0bd86f4a5bca428f7dcd989f838a9aa0c7e179 Reviewed-on: https://gerrit.libreoffice.org/55427 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-08hold LogicalFontInstance with rtl::ReferenceNoel Grandin
instead of manual reference counting. Also the releasing of not-currently-in-use LogicalFontInstance objects from the cache is made less aggressive - we now only flush entries until we have less than CACHE_SIZE instances, instead of flushing the whole cache. Change-Id: Ib235b132776b5f09ae8ae93a933c2eebe5fa9610 Reviewed-on: https://gerrit.libreoffice.org/55384 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-07manage PhysicalFontFace by rtl::ReferenceNoel Grandin
Change-Id: I8f66b5afb066fe83abb83c56ebde6f21197f894b Reviewed-on: https://gerrit.libreoffice.org/55333 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-29Change SFErrCodes to scoped enumStephan Bergmann
Change-Id: Ib2f267397e419e8164bb2d732f7cbcca7acad1a6 Reviewed-on: https://gerrit.libreoffice.org/54996 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-05-22Fix typosAndrea Gelmini
Change-Id: Idbe136fbfd222e8baad588dc36a2f9b7ce6996ec Reviewed-on: https://gerrit.libreoffice.org/54590 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins <ci@libreoffice.org>
2018-05-12Use HarfBuzz to get Kashida widthKhaled Hosny
One less platform-specific piece of code. Change-Id: Ib04c5f1434046e26ead2aaedace67127a5513e55 Reviewed-on: https://gerrit.libreoffice.org/54098 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-05-11Fold CommonSalLayout into GenericSalLayoutKhaled Hosny
Now the crazy constructors of CommonSalLayout are gone, we can merge the two and drop one level of indirection. Change-Id: I166e4ed2c9d22c1ce75246d486f7526c4928f652 Reviewed-on: https://gerrit.libreoffice.org/54077 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-05-08Refactor CommonSalLayout font handlingJan-Marek Glogowski
Moves all platform specific code from CommonSalLayout into the platform specific plugins. This way the vcl library won't depend on the Qt5 libraries and the Qt5Font header can be moved into the qt5 VCL plugin. While at it, switch the CommonSalLayouts font reference from the FontSelectPattern to the LogicalFontInstance and also add the harfbuzz font handling to the instance. Change-Id: Ida910b8d88837ea949a2f84394ccc0cfae153060 Reviewed-on: https://gerrit.libreoffice.org/47408 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-05-07Move PhysicalFontFace member of FontSelectPatternJan-Marek Glogowski
A FontSelectPattern describes a general font request. It can be used to find the best matching LogicalFontInstance. The instance will be created based on a PhysicalFontFace, which is really a factory since commit 8b700794b2746070814e9ff416ecd7bbb1c902e7. Following this workflow, this moves the PhysicalFontFace pointer to the instance and makes it constant. Which leaves some special symbol font handling code in the hash and instance lookup code path. It used to query the font face directly from the instance. I'm not sure of the correct handling. The related commits where made to fix #i89002#, which has an attached test document. 1. commit 849f618270da313f9339dda29a9f35938434c91d 2. commit 8c9823d311fdf8092cc75873e4565325d204a658 The document is as broken as it was before the patch. The symbol substitution still works, but the 'Q's are missing when displaying a symbol font. I also don't understand all the reinterpret_casts for fake font ids. I guess this was used to prevent the crashes I see, where a PhysicalFontFace referenced in a valid LogicalFontInstance is freed and a later FontId check in the GlyphCache crashes. So this now checks for a valid cache instead. Change-Id: If8ee5a6288e66cfa4c419289fbdd5b5da128c6ea Reviewed-on: https://gerrit.libreoffice.org/47279 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-04-25Simplify and rename SalLayout::GetNextGlyphsKhaled Hosny
It is now always called with nLen == 1, so simplify and rename. The criteria for deciding how many glyphs to return was bogus anyway, good riddance. Change-Id: Iff578d124ab40a0dfa84469be8e0e9fc1b6b8c48 Reviewed-on: https://gerrit.libreoffice.org/53406 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-04-25loplugin:useuniqueptr in VirtualDeviceNoel Grandin
Change-Id: I7c70f9c590dd63cca1dce16ce184fc7e14922de2 Reviewed-on: https://gerrit.libreoffice.org/53353 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-17tdf#113197 Add MaskPrimitive (clip) to EMF/WMF if neededArmin Le Grand
Added code to quartz vcl implementation that takes care when BitmapPalette.count != (depth^^2)-1 - which may be the case anytime. If then a bitmap value exists that goes beyond that count, a invalid access was executed Change-Id: Iab332c91b8753aab85e9d365323f5c9e531efab2 Reviewed-on: https://gerrit.libreoffice.org/44058 Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl> Tested-by: Jenkins <ci@libreoffice.org>
2018-04-16push logic from ImpBitmap::ImplReleaseBuffer downNoel Grandin
in preparation for removing ImpBitmap Change-Id: Icae48c081d821518103d08a7b62bcb4d64654c35 Reviewed-on: https://gerrit.libreoffice.org/52939 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-03-26replace SalColor with ColorNoel Grandin
Change-Id: I615640a378a61cf6e44e84a647ce06bdd8a52807 Reviewed-on: https://gerrit.libreoffice.org/51239 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-03-21Don't initialize data for --enable-dbgutil onlyStephan Bergmann
This had originally been introduced with 0f6149593129c3d208f07d0d017dec0c71760778 "Make it easier to catch code that assumes SalBitmaps are created pre-cleared". But it only made it harder to find the issue reverted with ebe247642d85d39b6e1ffae3cf92c31748f2e983 "Revert 'tdf#116213 OS X and OpenGL bitmap scaline sizes are not 32-bit aligned'". Change-Id: I344e1ab4b390baa8364ade5fd2737a12708facdc
2018-03-21Revert "tdf#116213 OS X and OpenGL bitmap scaline sizes are not 32-bit aligned"Stephan Bergmann
This reverts commit 460f39e687393b3a8906d2adc3e8f7a0c749851a. For one, it had started to make bitmap checksum equality check in svx/qa/unit/XTableImportExportTest.cxx, CppunitTest_svx_unit, fail most of the time in macOS --disable-dbgutil builds, as the bitmap checksum is now computed also over padding bytes containing random values (but --enable-dbgutil initializes those bytes). And why would fixing tdf#116213 for Windows require touching the macOS-specific code, anyway? For another, tdf#116213 comments 6 and 7 report further problems that are likely linked to this commit. Change-Id: I3e158813ab89a1ead3780abbf6b120ec52660231
2018-03-16tdf#116213 OS X and OpenGL bitmap scaline sizes are not 32-bit alignedChris Sherlock
Change-Id: I92b43ae2f034bf63cc3f212ec8728c5c6b5e8934 Reviewed-on: https://gerrit.libreoffice.org/51222 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2018-03-09loplugin:constantparam in vclNoel Grandin
Change-Id: I1618280494ff10d884a3285501303c6a74ef3542 Reviewed-on: https://gerrit.libreoffice.org/50951 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-03-09drop getColor() method of ColorNoel Grandin
no longer necessary Change-Id: I9e0fcea1134e8c5e27f9effbb5eb79fe5446e33d Reviewed-on: https://gerrit.libreoffice.org/50925 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-28convert COL_ constants to be of type ColorNoel Grandin
Change-Id: I0e25c8950ac26b851ff42f71e1471fcbe4770d48 Reviewed-on: https://gerrit.libreoffice.org/50373 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-26use less RGB_COLORDATANoel Grandin
part of removing ColorData Change-Id: If31b5b88545529863377e9a178f45f4516bf6cbb Reviewed-on: https://gerrit.libreoffice.org/50345 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-22tdf#68889: Fix the weight reported by the system for the problematic fontTor Lillqvist
Like the previous fix for Courier Std. Let's hope there won't be a lot of these special cases. Maybe some generic heuristic would be better. Like if a font's GetStyleName() is "Medium", "Medium Oblique", or "Medium Italic" then always force its weight to be WEIGHT_NORMAL? Change-Id: I204655cd9c4e32d5cbbd68bb93c6282d23993b80
2018-02-22tdf#67744: Fix the weight reported by the system for the problematic fontTor Lillqvist
A hack, but oh well. Change-Id: I13580d27acfb0cc200bdb0cc1911518675d3e32e Reviewed-on: https://gerrit.libreoffice.org/50172 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-02-22ColorData->Color in vcl quartzNoel Grandin
Change-Id: Ie0de7f989ab4aefa900da6b9b75fcfe98584c8f3 Reviewed-on: https://gerrit.libreoffice.org/50124 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-05vcl: remove BitmapColor Color() operatorChris Sherlock
BitmapColor has a Color() operator. However, this is confusing and tends to hide that the two classes aren't the same. I have converted this to GetColor(). Change-Id: I0be2dcb3fc420e7be9c8d04330e7a3fe69a5412a Reviewed-on: https://gerrit.libreoffice.org/48245 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-23tdf#69254: Tweak mapping from CoreText weight to our FontWeight a bitTor Lillqvist
Make the mapping of light weights more likely to hit different enum values for slightly different weights. We want to be able to distinguish between for instance Overpass Light (with weight -0.4) and Overpass ExtraLight (with weight -0.5). Change-Id: If83fbce68149b267a49ef9bcb6624d8790de7c56 Reviewed-on: https://gerrit.libreoffice.org/48409 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-01-23The CT prefix is used by the CoreText APITor Lillqvist
Surely we should not be using it for our own things in our Quartz code, that is misleading. Also bin a silly typedef. Change-Id: Ie932e8784128246ca449608aad3dc96a575ec9d5
2018-01-20More loplugin:cstylecast on macOSStephan Bergmann
Automatic rewrite (of loplugin:cstylecast and loplugin:unnecessaryparen) after cab0427cadddb3aaf1349c66f2fa13a4234ba4b2 "Enable loplugin:cstylecast for some more cases" and a409d32e7f6fc09e041079d6dbc3c927497adfed "More loplugin:cstylecast" Change-Id: Iff4877e8a42804c952c48c13332caf0a83c92870 Reviewed-on: https://gerrit.libreoffice.org/48216 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-06convert tolerance params to sal_uInt8 (second try)Noel Grandin
first attempt was in commit e75abe6e0a4ea250366bb29c0ece697e9b1b80a1, reverted in 7accac097688832d8682a88a0176c3e1482ffade Change-Id: I460e9ab5fcca3a99656e5d8434fa04c2387d7183 Reviewed-on: https://gerrit.libreoffice.org/47463 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-06iOS, correct DPIX calculationjan Iversen
Patch is thanks to Jon N. Change-Id: Idba9ec9b32b144523f0e7da5f7273f6af9fdfd31
2018-01-05tdf#114837 FILEOPEN: Image is blankNoel Grandin
revert commit e75abe6e0a4ea250366bb29c0ece697e9b1b80a1 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Tue Dec 12 09:33:14 2017 +0200 convert tolerance params to sal_uInt8 for now. Change-Id: Iafaada0fb338f60ecc9f94aafe138500dfb27cf7 Reviewed-on: https://gerrit.libreoffice.org/47453 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-15Protect all LogicalFontInstance constructorsJan-Marek Glogowski
This way LogicalFontInstance can just be constructed by a PhysicalFontFace based factory. The patch also drops the wrong "Java logical font" comment added by commit 125cdf3404e60cf78f2a5547e9a06ce994df5c8e. Change-Id: Ibd5d7da0c3a65dbfa2c8ae6b05cf616d39b749f2 Reviewed-on: https://gerrit.libreoffice.org/46475 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-12-13convert tolerance params to sal_uInt8Noel Grandin
since their range is 0-255 Also drop pTols from ImplColReplaceParam, since it is always nullptr. Change-Id: I9e9ab7f7596e18cab1d67dd69922e5ac9867f45b Reviewed-on: https://gerrit.libreoffice.org/46274 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-14use std::unique_ptr for SalLayoutNoel Grandin
to make the ownership passing around more obvious Change-Id: I147ec6d9cfe7566cf3600685e0730ed741c2d90d Reviewed-on: https://gerrit.libreoffice.org/43454 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-30Constify some VCL interface functionsJan-Marek Glogowski
This drops the bPaintEnd optimization for vertical and horizontal lines on Windows, where Polyline and LineTo exclude painting the last pixel of the line. Instead we just always set the last pixel. It also merges the various "SetPixel" call sites into a common drawPixelImpl function. Change-Id: I01cc3c01c908ba74f7978fa90eaaf8d88f923ae3 Reviewed-on: https://gerrit.libreoffice.org/43939 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-10-24loplugin:includeform: vcl (macOS)Stephan Bergmann
Change-Id: I4382a45dcffb32c7c001ee722ac1deccb2b01c2d
2017-09-29OSX rename mpFirstInstance to mpInstanceJan-Marek Glogowski
In the same spirit as the Windows commit 7c52d86f7b05fe7e0178f6d98a12a531b88a32ff. Change-Id: Ic45803c0715723b6f57c9f6a0c731edd559aa92c Reviewed-on: https://gerrit.libreoffice.org/42932 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-28Unify SalUserEvent handlingJan-Marek Glogowski
Merges the various SalUserEvent structs and their handling into a single class. This includes a common SalFrame* hash map, as all backends use such a map to verify alive SalFrames. It also reverts the "FIXME: lousy workaround" for i#90083, which was part of commit d6f7c94e5c27ba02ff5c3229760c9808cc9b5bea. At least on my current OSX box application based window switching "just works" "out of the box", even without the code. Change-Id: I188b567e44fd79c162b2d9cabbd771d1f66c7dc4 Reviewed-on: https://gerrit.libreoffice.org/42845 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-18Acknowledge that WinSalGraphicsImpl::drawPolyLine modifies pPtAryStephan Bergmann
Change-Id: Idde44857f8ace883cc759321c71e2ca7a4359334 Reviewed-on: https://gerrit.libreoffice.org/42406 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-08-31loplugin:constparams: vcl (macOS)Stephan Bergmann
Change-Id: I993ab0021d0a0bee8e78975bba180355d2bfb19c
2017-08-08tdf#111497: fix leak in FindFontSubstitute with CFReleaseJulien Nabet
Change-Id: I9d7de52b4a1ee102b233b982e97ecbf731b476f2 Reviewed-on: https://gerrit.libreoffice.org/40895 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-08-07tdf#111432: fix leaks in AddTempDevFont with CFReleaseJulien Nabet
Change-Id: I11183b7fd21d2398de9e5f5854763cef96963caa Reviewed-on: https://gerrit.libreoffice.org/40845 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-08-07loplugin:casttovoidStephan Bergmann
Change-Id: Icda66259acf54e6771b926ce9d329287bd610e82
2017-08-07loplugin:unnecessaryparenStephan Bergmann
Change-Id: I9496cafef840195e3934bf92600d4e8c8edb6c26
2017-06-20new cannot return nullptrNoel Grandin
unless we are using std::nothrow Change-Id: I3bdd13c8ce18f4e977f18ee5196311bf4fc62de0 Reviewed-on: https://gerrit.libreoffice.org/38998 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-18remove unused osl/mutex.hxx includesJochen Nitschke
Change-Id: I3b50e45fdb99e9cd8bfda07356ee3ddb4dd0f8bb Reviewed-on: https://gerrit.libreoffice.org/38905 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>