summaryrefslogtreecommitdiff
path: root/vcl/quartz
AgeCommit message (Collapse)Author
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>
2017-04-21remove unnecessary explicit linefeeds from end of SAL and OSL log callsNoel Grandin
Change-Id: I3fa363c8e76e6cfb297f4ec346e3f031c09d6fbf Reviewed-on: https://gerrit.libreoffice.org/36727 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-03-31tdf#82580 tools: rename Rectangle to tools::RectangleMiklos Vajna
Mostly generated using make check COMPILER_EXTERNAL_TOOL=1 CCACHE_PREFIX=clang-rename-wrapper RENAME_ARGS="-qualified-name=Rectangle -new-name=tools::Rectangle" Except some modules have their own foo::tools namespace, so there have to use ::tools::Rectangle. This commit just moves the class from the global namespace, it does not update pre/postwin.h yet. Change-Id: I42b2de3c6f769fcf28cfe086f98eb31e42a305f2 Reviewed-on: https://gerrit.libreoffice.org/35923 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-28ofz#954 out of memoryCaolán McNamara
Change-Id: Ib27f2dfe0d0837544910208f38a1bc11a35e3cb4 Reviewed-on: https://gerrit.libreoffice.org/35794 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-03-02Fix typosAndrea Gelmini
Change-Id: I72db7ff99cde394bc161dfd835bfb0d9a47a53d1 Reviewed-on: https://gerrit.libreoffice.org/34780 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-26Round glyph bbox on Mac similar to other platformsKhaled Hosny
Core Text API gives us float bounding box that we round ourselves, on other platforms we get rounding integers. Try to use the same rounding on Mac as FreeType does internally, hopefully this is the same on Windows. Change-Id: I7eb08464b008174270880575c4f3df28ede5c89d Reviewed-on: https://gerrit.libreoffice.org/34661 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2017-02-22tdf#104509: Fix GetGlyphBoundRect on MacKhaled Hosny
The rectangle top and bottom were mixed up! I tried to fix this in 8cef9b4dbafdebc0566d6d7f715f27f978ddfe5b, but it was not the right fix. Change-Id: Ia033ff2823bfd641e830d748d413d7791bfee5b8 Reviewed-on: https://gerrit.libreoffice.org/34557 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2017-02-09convert FontType to scoped enumNoel Grandin
Change-Id: Ieb8f90be8effde5f25bc872784c3ea2177b14bf9 Reviewed-on: https://gerrit.libreoffice.org/34056 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-08drop unused enum TTCreationFlagsNoel Grandin
there is only one method using it, and all of the call sites pass 0 Change-Id: I5d71b36cf890fbcf0be9d795756da0cfd61ae309 Reviewed-on: https://gerrit.libreoffice.org/34024 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-02convert method names in tools::SvRef to be more like our other..Noel Grandin
reference classes, uno::Reference and rtl::Reference. Specifically rename Is()->is() and Clear()->clear(). Change-Id: Icb7e05e2d09cb9977121508b837ba0961dabb4ae Reviewed-on: https://gerrit.libreoffice.org/33576 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-30tdf#104693: screenshot: fix mirrored mac screenshotsThorsten Behrens
Change-Id: Ie13689d7e15bf8dee6f21e6f5e7d75c9e53e931b Reviewed-on: https://gerrit.libreoffice.org/32543 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-12-12Don’t return false for blank glyphsKhaled Hosny
CTFontCreatePathForGlyph() will return NULL for blank glyphs causing CoreTextStyle::GetGlyphOutline() to return false which propagated as error all the way to OutputDevice::GetTextOutlines() causing it to needlessly enter into fallback code. Other implementations just return true and an empty polygon here. Change-Id: Ib20ebff00f7cb3aae22f1c6b4c3a0e9d7a429987 Reviewed-on: https://gerrit.libreoffice.org/31902 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-11sal_GlyphId is a simple glyph id nowKhaled Hosny
No more cleverness. Change-Id: I760c602802961b37728c6987c4ade14fb02ca034 Reviewed-on: https://gerrit.libreoffice.org/31819 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-11Don’t encode font fallback level in the glyph idKhaled Hosny
Change-Id: I747d969c3c1dc42b1a3b5d12d06fed3af9a64675 Reviewed-on: https://gerrit.libreoffice.org/31818 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-11Don’t encode the vertical flag in the glyph idKhaled Hosny
Change-Id: I00485dd4d42004e4eaa163a9e6ad0a43cf98a30a Reviewed-on: https://gerrit.libreoffice.org/31816 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-10Use GlyphItem in more placesKhaled Hosny
Change-Id: Ic0dd8c0311161271817eb9a3f454d00a319e43a8 Reviewed-on: https://gerrit.libreoffice.org/31814 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-10Pass GlyphItem aroundKhaled Hosny
We have this nice structure that contains (almost) all the information we need, so pass it around instead of passing separate fragments of said information. The ultimate is to kill the horrible sal_GlyphId hack if encoding various bits of information in the higher bits of a 32-bit integer. Change-Id: Ie496bb4c2932157527a388e2a94e46bf0a325a70 Reviewed-on: https://gerrit.libreoffice.org/31781 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-12-07convert PolyFlags to scoped enumNoel Grandin
and remove the XPolyFlags enum, which has the same values and was being converted to PolyFlags anyhow Change-Id: Iaead84933c79a7603698a4e50257dd944df89c41 Reviewed-on: https://gerrit.libreoffice.org/31627 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-06OSL_TRACE -> SAL_ in vclNoel Grandin
Change-Id: Icd317671a6b1b5356f0ccc7c59d50952fe20269b Reviewed-on: https://gerrit.libreoffice.org/31667 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-01Unused codeKhaled Hosny
Change-Id: Idfc964930c242d752a78cd109d75d809bce4de11 Reviewed-on: https://gerrit.libreoffice.org/31470 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-29Strip down GetEmbedFontData to what is really usedKhaled Hosny
The only remaining user is EmbeddedFontsHelper, and it just needs the raw font data. Change-Id: Ia15c59158b5c9e44d0936463553303a3c8b6e0f5 Reviewed-on: https://gerrit.libreoffice.org/31374 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-29SalGraphics::GetFontEncodingVector() is a noop nowKhaled Hosny
Change-Id: Id706fa242277a0ea7ba44f52eab4a56e404bd2fa Reviewed-on: https://gerrit.libreoffice.org/31372 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-29Drop a bunch of font metrics flagsKhaled Hosny
These flags mean nothing these days, there are either always true or always false, since we no longer support bitmap or Type 1 fonts. Change-Id: Ie14ca480225a6346d868a44e58e7666c3a06931d Reviewed-on: https://gerrit.libreoffice.org/31346 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-26Kill old Core Text layout engineKhaled Hosny
Change-Id: If80d65899255d8be72f374fbec232d103a08a006 Reviewed-on: https://gerrit.libreoffice.org/31232 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-26ServerFontLayout is already goneKhaled Hosny
Kill DrawServerFontLayout, and rename DrawSalLayout to DrawTextLayout, in parity with GetTextLayout. Change-Id: I3f61efd8c6ecde64f28301dca6a7c91eb0873702 Reviewed-on: https://gerrit.libreoffice.org/31224 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-22tdf#55469 Consistent line spacing across platformsKhaled Hosny
We current use platform APIs to calculate line spacing, however different platforms behave differently: * FreeType and Core Text will prefer hhea table over OS/2, and OS/2 Typo metrics over Win ones. * GDI’s TEXTMETRIC only uses OS/2 Win metrics, while NEWTEXTMETRIC seems to use Typo one, but we use only the old TEXTMETRIC. So we get inconsistent line spacing and we have no control which of three competing sets of line spacing metrics we end up using. The current conventional wisdom is that: * hhea metrics should be used, since hhea is a mandatory font table and should always be present. * But if OS/2 is present, it should be used since it is mandatory in Windows. OS/2 has Typo and Win metrics, but the later was meant to control text clipping not line spacing and can be ridiculously large. Unfortunately many Windows application incorrectly use the Win metrics (thanks to GDI’s TEXTMETRIC) and old fonts might be designed with this in mind, so OpenType introduced a flag for fonts to indicate that they really want to use Typo metrics. So for best backward compatibility: * Use Win metrics if available. * Unless USE_TYPO_METRICS flag is set, in which case use Typo metrics. This patch does this by reading the hhea and OS/2 tables directly and implementing the algorithm above. Quick comparison with Microsoft Office 2016 shows similar line spacing as the new line spacing here, so I guess we are improving compatibility as well. Change-Id: I4541e67e3e14508e3529e73083056a09de02e637 Reviewed-on: https://gerrit.libreoffice.org/31053 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-13tdf#103895: Another fix too macOS glyph boundingKhaled Hosny
Apply font rotation when calculating glyph bounding rectangle. Change-Id: I9c533ec3b33a5858d46b60d1700a50d3b6f915a4
2016-11-13Simplify vertical text drawing on macOSKhaled Hosny
Rotate only the rotated glyphs instead of rotating everything, then unrotating the upright glyphs. No need for a rotated font either, rotating the graphics is fine. Change-Id: I1fce2c9c6a29abb1353a5fc8485a9c0d34edfbf1
2016-11-13Fix buildKhaled Hosny
Change-Id: I55db5ba855b8d72e9be0298a68b094c7b01d9f54
2016-11-13Unused codeKhaled Hosny
Change-Id: Ief0942e7e3dfb7a550bcd1de99e4630831438c86
2016-11-07-Werror,-Wdeprecated-declarationsStephan Bergmann
Change-Id: Ia54f11b799fefcddcbf3b9f49e806bfc0895773f
2016-11-07Set Kashida width also on macOSKhaled Hosny
Otherwise we might not get any Kashida justification at all. Change-Id: I6521d5a267392314d5d0da84b93fcd80c7b7cc57
2016-11-02Fix GetGlyphBoundRect() on macOSKhaled Hosny
The Y sign should be reversed to match VCL, apparently it was either unused on macOS before CommonSalLayout or it was wrong all along. This was the source of CppunitTest_svgio failure on macOS with CommonSalLayout. Change-Id: I3108aab7b6780c912e86e5591ca0f41ea437137b
2016-10-25Skip font formats not supported by CommonSalLayoutKhaled Hosny
Don’t list fonts we can’t handle, bad things would happen… Change-Id: Ic88486e34da69090deb3e8c394cb75a8e4e5cbd0
2016-10-18Rewrite AquaSalGraphics::DrawSalLayout()Khaled Hosny
Slightly cleaner code and now handles glyph rotation for vertical text. Change-Id: I98cc8fd7df5e73068294e4d7dd6b38a71dcbdcc7
2016-10-18Support font fallback on macOS for CommonSalLayoutKhaled Hosny
Change-Id: Ifd26b7f14ed77a3aa2a38e5961cac5f9bbb6d796
2016-10-18Check SAL_USE_COMMON_LAYOUT envar in one placeKhaled Hosny
Makes it easier to flip the switch in the future (or even do something more fancy other than checking envvar). Change-Id: Ie42ca012c167b2108f0fca1ce9ff7beee95f1be7
2016-10-18Cache HarfBuzz fontKhaled Hosny
We now create it only once per physical font, saves us few percents from the all over time spent on layout. Change-Id: I8de582cb20a168c93d72921e539c2477fa97fb54