summaryrefslogtreecommitdiff
path: root/vcl/source/gdi
AgeCommit message (Collapse)Author
2016-12-05convert DecodeMechanism to scoped enumNoel Grandin
Change-Id: I5c56634b1bca8e37fa73d02d2428645301b6c547
2016-12-05convert INetURLObject::EncodeMechanism to scoped enumNoel Grandin
Change-Id: I50ea17c7779c7b5cacddf548f1773fd7d6c8bade
2016-12-05Change Read/Write access to Scoped Read/Write accessMark Page
Change-Id: I4834d057e1997710f5ac9691d6c3eecb24e26881 Reviewed-on: https://gerrit.libreoffice.org/31550 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-02Require HarfBuzz 0.9.42Khaled Hosny
This is the first version where hb_buffer_set_cluster_level() was introduced. The layout engine depends on this feature in a few places and though we can build without it, the result will be wrong in some cases (i.e. any where we assume combining marks will have their own cluster number). Change-Id: I89187f317052e7933b83ad0350cace239333510b Reviewed-on: https://gerrit.libreoffice.org/31521 Reviewed-by: Rene Engelhard <rene@debian.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
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-12-01BitmapFilter, BitmapScaleSuper only used within vclStephan Bergmann
Change-Id: Ia8a1207a584b599f01c47b658692d3eeae52cb3a
2016-11-30Use smart pointers for gdi pdf functionsMark Page
Change-Id: Ia78adfbd0d07449e12a7e0d02acf8a1a1108437c Reviewed-on: https://gerrit.libreoffice.org/31421 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-11-30tdf#101458 - check PNG for adequate compressionMarco Cecchetti
Change-Id: I7131d3b721ebb4d47b0bb43f09fcb9767f8ac6d8 Reviewed-on: https://gerrit.libreoffice.org/31409 Reviewed-by: Marco Cecchetti <mrcekets@gmail.com> Tested-by: Marco Cecchetti <mrcekets@gmail.com>
2016-11-30vcl mscrypto PDF sign: fix typo in GetDERLengthOfLength()Miklos Vajna
When id-aa-signingCertificateV2 had a value that was larger than 255 bytes, then the header size is expected to be 4 bytes, but it was only 3. The length part of the header is 3 bytes: one byte declaring the length-of-length, and 3 bytes for the length. We added this additional byte to the result too early, that way we counted that e.g. 278 (the number) fits into a single uint8_t, which is not the case. Also introduce named constants for some of the hardwired numbers in the code for better readability. Change-Id: I816236e5ac561c9d21bd9df703385ee2201482e7
2016-11-30vcl mscrypto PDF sign: write IssuerSerial sequenceMiklos Vajna
It fixes a problem detected by the PAdES validator from <https://github.com/esig/dss>, and with this the Windows output is in sync with NSS. Change-Id: Iff6eb441eebb730f08e399cb3012e0156f0397d9 Reviewed-on: https://gerrit.libreoffice.org/31376 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-11-30convert GraphicsState flags to o3tl::typed_flagsNoel Grandin
Change-Id: I5b660895c470a904fa5f1bc8123cea901ad8cf9c Reviewed-on: https://gerrit.libreoffice.org/31365 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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-29Dead codeKhaled Hosny
m_aEmbeddedFonts is always empty now. Change-Id: Ia0cdfbabff29722d51b92ed47e04ef40d71f65be Reviewed-on: https://gerrit.libreoffice.org/31373 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-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-29Rewrite some (trivial) assignments inside if/while conditions: vclStephan Bergmann
Change-Id: I26fd9bf9838b0d9d6cf35dc62195216a0c1333ee
2016-11-29vcl mscrypto PDF sign: don't assume that header length is always 2 bytesMiklos Vajna
For now just assert that the short form doesn't try to handle larger values than expected, the long form has to be implemented once we hit the assert. Change-Id: Ib2b17b4e3c5772b68fef84a41438a56e55799e8b
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-28Use range for loopKhaled Hosny
Change-Id: I28cfa9864d9596868cdf1349c210342d9c2b6329 Reviewed-on: https://gerrit.libreoffice.org/31302 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-28Simplify things a bitKhaled Hosny
* Drop SortGlyphItems() and update the Kashida insertion code not depend on that sorting. * IS_DIACRITIC flag can now be based solely on the General Category property, since it now is used for non-spacing marks not any OpenType mark glyph. Pending complete removal. * Check whether a glyph can take Kashida or not in one place. We need to stop second-guessing here and pass explicit Kashida insertion points from upper layers. Change-Id: I39caa126a07d08c5725505615acc0c8f7a14e169 Reviewed-on: https://gerrit.libreoffice.org/31300 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-26Do not check for SAL_NO_COMMON_LAYOUT any moreKhaled Hosny
It has no effect except on Windows, and this will go out soon. Change-Id: I238518624e3288dea259e5ec9d5d76c8f691fd8c
2016-11-26More dead codeKhaled Hosny
Change-Id: I518b56566cdf1eceee7a868b9bf4ab4f6e498f98 Reviewed-on: https://gerrit.libreoffice.org/31234 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-26DisableGlyphProcessing flag is never set nowKhaled Hosny
Change-Id: I4a56c5d7490dd78f5cb72f2b821fb43c93f64b2d Reviewed-on: https://gerrit.libreoffice.org/31223 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-25Revert "tdf#89870: Add config option for layout engine"Khaled Hosny
This reverts commit 6324efd70dfa8c6be84cba1fa29658e3373cbbe3. The old layout engines will soon be gone. Change-Id: Iedbcffd18b11ac36ad98a66ac12111058aab19b3 Reviewed-on: https://gerrit.libreoffice.org/31142 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-24vcl mscrypto PDF sign: write ESSCertIDv2Miklos Vajna
With this, the value of signing-certificate conforms to the RFC on Windows as well. Change-Id: I09d21026bfecd0453e194f3f4cd8bae9805a5d7a Reviewed-on: https://gerrit.libreoffice.org/31150 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-11-23loplugin:unnecessaryoverride (dtors) in vclStephan Bergmann
Change-Id: I38e24991308bf52e75259a30d332145aef9a757b
2016-11-23Make PS on Unix printing use the new layout engineKhaled Hosny
I’d rather kill PS printing entirely, but this will do for now. Change-Id: I112cc4855ab722ac07d31231f2a1ea8842b4159a Reviewed-on: https://gerrit.libreoffice.org/31133 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-23vcl mscrypto PDF sign: add initial 'signing-certificate' signed attributeMiklos Vajna
Equivalent of the earlier NSS commit, payload is just an empty sequence at the moment. Change-Id: I4639e2514ef01d23da04aedc30f63f9e8878223b Reviewed-on: https://gerrit.libreoffice.org/31108 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-11-22tdf#99327 vcl PDF mscrypto sign: fix SHA-256 OIDMiklos Vajna
The previous OID only worked with NSS as NSS_CMSUtil_MapSignAlgs() has a hack to accept it, saying Windows 2003 generates such OIDs. Don't depend on readers of the signature accepting that incorrect OID. Change-Id: I63e9a363e9e2ad233eeeacea1a354e3190da1ac1
2016-11-22vcl PDF mscrypto sign: upgrade SHA-1 hash to SHA-256Miklos Vajna
Also: - avoid writing ETSI.CAdES.detached for now on Windows till doing so results in an invalid signature in Acrobat - extend the SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION hack to do the same for SHA256 and SHA512 as well, as Acrobat and NSS accepts such signatures Change-Id: Ibb0a204504b29230dd712ffb709d2037c1007218
2016-11-22vcl NSS PDF sign: write IssuerSerial sequenceMiklos Vajna
Nominally this is optional, but RFC 5035 says: "The encoding of the ESSCertIDv2 for this certificate SHOULD include the issuerSerial field." So do write it, it fixes a warning issued by the PAdES validator from <https://github.com/esig/dss>. Change-Id: I344f79e17febe82a697a0936a837c17aefa242df
2016-11-19tdf#103969: Do fallback glyph rotationKhaled Hosny
Charters with vertical orientation Tr (transformed rotated) should be rotated does not provide a vertical alternate. We check this by seeing if the glyph we got from HarfBuzz is possibly a vertical alternate. Change-Id: I40a0956847bedef1d67ab02ccb27a97d049ba471 Reviewed-on: https://gerrit.libreoffice.org/30984 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-19tdf#103891: Fix DX array calculationKhaled Hosny
This partially reverts: commit c49d5dea164b09b05a898495fa2dd48b7ca4f0e4 Author: Khaled Hosny <khaledhosny@eglug.org> Date: Fri Nov 11 18:24:11 2016 +0200 tdf#103765: Minimize the effect of rounding to int Instead of scaling the relative coordinates and accumulating rounding errors, scale the absolute coordinates. Also round to int instead of truncating. as it results in OutputDevice::GetTextArray() calculating wrong absolute DX array. Again the whole DX array thing is brain dead. Change-Id: Ia257b73062315b797b5ed52e434562fad3b3fb90
2016-11-17vcl PDF NSS sign: don't embed signed timestamp to the signature blobMiklos Vajna
There are several reasons to avoid doing so: - The mscrypto backend doesn't do that, so the previous situation was inconsistent. - PDF provides markup to provide a timestamp, and that's automatically part of the signed data. - Page 10 of "PAdES Basic" specification from <http://www.etsi.org/deliver/etsi_ts%5C102700_102799%5C10277802%5C01.02.01_60%5Cts_10277802v010201p.pdf> explicitly requests either not writing that data, or writing it as an unsigned attribute (probably to underline that the value is from untrusted source, it's the signer's computer clock). Change-Id: I35b1a9ef4a391a24e6695353d617f27c7d96d93b Reviewed-on: https://gerrit.libreoffice.org/30926 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-11-16vcl PDF sign: write ESSCertIDv2.hashAlgorithm/certHashMiklos Vajna
With this, the value of signing-certificate conforms to the RFC. Change-Id: I27595068be46651efcbf0bd63fc51f79c6e18b4f Reviewed-on: https://gerrit.libreoffice.org/30907 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-11-16vcl PDF sign: initial ESSCertIDv2Miklos Vajna
Towards writing the complete signing-certificate value. Change-Id: I0c7f3ddf863f944cc9e763beaf7d92e631dbcd4b
2016-11-15vcl PDF sign: add initial 'signing-certificate' signed attributeMiklos Vajna
Page 10 of "PAdES Basic" specification from <http://www.etsi.org/deliver/etsi_ts%5C102700_102799%5C10277802%5C01.02.01_60%5Cts_10277802v010201p.pdf> says: "At minimum, it [the signature] shall include the signer's X.509 signing certificate." This adds the signed attribute, but it's disabled by default as the value is just an empty sequence at the moment. Change-Id: Icda96f63618b08fadcb411204e132fe88d5f7d1d Reviewed-on: https://gerrit.libreoffice.org/30877 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-11-15fix tdf#101832 and tdf#100617Thorsten Behrens
OutDev mapmode takes shortcuts for 'simple' mappings, so clear that flag once we set scale/origin away from defaults. Change-Id: I00321e27322d9cb8b86e6cc8400f6396d03328cc Reviewed-on: https://gerrit.libreoffice.org/30855 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-11-15tdf#103725: Fix horizontal scaling on WindowsKhaled Hosny
* Create IDWriteFont from LOGFONT instead of HDC, as it seems the later will discard the font width. Without font width, GDI/DirectWrite will not scale the font horizontally. Does not seem to work with all Windows versions (at least not Windows 10 Anniversary Update), seems like this undocumented behaviour have been dropped :( * Adjusting font width on Windows during layout, see the inline comment. Change-Id: I19b788460b6b6ca2c83d75bbf09a0601a250c289 Reviewed-on: https://gerrit.libreoffice.org/30847 Reviewed-by: Khaled Hosny <khaledhosny@eglug.org> Tested-by: Khaled Hosny <khaledhosny@eglug.org>
2016-11-15loplugin:constantparamNoel Grandin
Change-Id: I1a6e13584ca516f44195e724b39e78360a842c7c Reviewed-on: https://gerrit.libreoffice.org/30859 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-15vcl: include redux in MapModeThorsten Behrens
Change-Id: Icc43510a3e561b426319465ea98eb374a3aa1f8d
2016-11-15vcl: cleanup whitespace in MapModeThorsten Behrens
Change-Id: Ib790bab105c337d62ffc93f72bf6da49a74f00cf
2016-11-14vcl PDF NSS sign: upgrade SHA-1 hash to SHA-256Miklos Vajna
Page 10 of "PAdES Basic" specification from <http://www.etsi.org/deliver/etsi_ts%5C102700_102799%5C10277802%5C01.02.01_60%5Cts_10277802v010201p.pdf> says: "The use of SHA-1 is being phased out in some countries and hence the use of other hashing algorithms is recommended." Change-Id: I1fbf4a194a24090b719322f3cb4f9d7eef58f134
2016-11-14Revert "tdf#103725: Fix horizontal scaling on Windows"Khaled Hosny
This reverts commit 30fefcf71417f8c8644f5c0d3cb28c8c7f92a6c7. Thuough it works on my system, others report that it made things worse. A better fix is comming, hopefully.
2016-11-14tdf#34212: Accented Characters and Umlauts are missing with Type1 fontsJulien Nabet
Following the revert of previous patch: https://cgit.freedesktop.org/libreoffice/core/commit/?id=297b22bd49ea11a90063ab8503fb83090f351668 Gilbert Röhrbein proposed this patch See https://bugs.documentfoundation.org/show_bug.cgi?id=34212#c14 Change-Id: I1a30427cd88f5602e7633894ba35307104c2ed8d Reviewed-on: https://gerrit.libreoffice.org/29792 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-11-11tdf#103871: Set Kashida flag per glyphKhaled Hosny
When we are shaping mixed script text, the Kashida flag would be set based on which script come last, which makes no sense of course. I just left an XXX note yesterday, and I hit the bug today already in a friend’s document! Change-Id: Ic996fd886f30f4385185eccd214b5648f7248262
2016-11-11tdf#103765: Minimize the effect of rounding to intKhaled Hosny
Instead of scaling the relative coordinates and accumulating rounding errors, scale the absolute coordinates. Also round to int instead of truncating. Change-Id: Ida0b4092685e898b7c5b5c07e923e386ffde8bcd
2016-11-11fix buildCaolán McNamara
Change-Id: Ie5a566a523731bc75e85a227c4149fe8e03a2c76
2016-11-11tdf#103725: Fix horizontal scaling on WindowsKhaled Hosny
* Restore the hack for adjusting font width on Windows, for the life of me I can’t find where we change font width or why I get different values on Windows than Linux. * Create IDWriteFont from LOGFONT instead of HDC, as it seems the later will discard the font width. Change-Id: I74d6685b8c2a6f5d8087f439fbb02f0343f13691
2016-11-11loplugin:redundantcastStephan Bergmann
Change-Id: I6fc99a6e8d7b5de86461dd52102dac9c011f3fe0