summaryrefslogtreecommitdiff
path: root/vcl/quartz/ctlayout.cxx
AgeCommit message (Collapse)Author
2014-06-03Related: #i125020# fix the calculation of the text-update rectangle...Herbert Dürr
in CoreText by doing the calculation before CTLineDraw() updates the text position. Requesting the update early is possible because that update region is not used until AquaSalInstance::Yield(). (cherry picked from commit ee042661b996fd00d5504caf4f4be60f77bf880f) Conflicts: vcl/aqua/source/gdi/ctlayout.cxx Change-Id: I317a2068071a2f6d33f34c81e104e30beedc33db
2014-06-03Resolves: #i124935# fix expanded/condensed text breaking...Herbert Dürr
in the CoreText engine the concept of an extra-width per code-unit was obsolete at least since apps supported unicode with its different normalization forms, diacritical marks, surrogate-pairs, non-printing characters such as ZWJ/ZWNJ/RLM, etc. so of course modern engines like CoreText don't aid this typographical crime. The fix here extends the CTLayout::GetTextBreak() method to handle the obsolete semantic of per code-unit extra-widths by successively approximating the number of involved code-units. (cherry picked from commit a9b9ceff86f35be1eeff5f251d24e338db760a1e) Conflicts: vcl/aqua/source/gdi/ctlayout.cxx Change-Id: I52a7f7488a9e8a303ed7271df2a24a3c85098ce3
2014-05-29Resolves: #i124922# allow late setting of the font color...Herbert Dürr
for CoreText-layouted text (cherry picked from commit 42f9768f771457c53a9f1e6a3581b2df9856401f) Conflicts: vcl/aqua/source/gdi/ctfonts.cxx vcl/aqua/source/gdi/ctfonts.hxx vcl/aqua/source/gdi/ctlayout.cxx vcl/source/gdi/outdev3.cxx Change-Id: Ie2685ab80ca87ea72e25f18d02f883fb36c24a36
2014-05-23Add SAL_INFO tracing for CoreText callsTor Lillqvist
Change-Id: Ie60e0b64a2d9d8a045cb3c59fc781d6f9b2808a0
2014-05-23fdo#77993 actually impact 10.6 too apparentlyNorbert Thiebaud
Change-Id: I4b3724159be64609f1e88b63ccd9275d164fcb3e Reviewed-on: https://gerrit.libreoffice.org/9426 Tested-by: Norbert Thiebaud <nthiebaud@gmail.com> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
2014-05-13vcl-quartz: fix for fdo#77993 (specific to OS X <10.6)Douglas Mencken
When using current method, early version of CoreText crashes internally. Change-Id: Id451d72ac26e4777b61f5d3fec6d4b046c46a749 Reviewed-on: https://gerrit.libreoffice.org/9180 Tested-by: David Tardon <dtardon@redhat.com> Reviewed-by: David Tardon <dtardon@redhat.com>
2014-05-09Handle all-space corner caseStephan Bergmann
Change-Id: I07981a63a30ac3d610be03e736188a6539884f01
2014-05-08fix memory leaks in vcl quartzPtyl Dragon
Change-Id: Ifb6a924759b8a3a7f459f2335144ca4dda434cb9
2014-04-24vcl-quartz: fix build of recently introduced DrawTextSpecial for OSX<10.6Douglas Mencken
Change-Id: I277d9e2f385b712001385e115b22f6fbb8106ae5 Reviewed-on: https://gerrit.libreoffice.org/8790 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
2014-04-12cppcheck: Prefer prefix ++/-- operators for non-primitive typesJulien Nabet
Change-Id: I7060802164989c2797d4abea29a378eaa3a54b41
2014-04-09vcl quartz: cache per-run glyphs informationNorbert Thiebaud
GetNextGlyphs could only deal with 1 glyph at the time and was recalculing a lot of thing while iterating on the glyphs This is not just a performance issue.. the notiong of keeping per run glyphs information will be useful to re-establish the proper support of glyphs display positionning by SetDXArray() which today is completely ignored, in favor or letting CoreText spread the extra free space itself. Change-Id: Ib267c3e490619b650d4149f4b15b5758802942ba Reviewed-on: https://gerrit.libreoffice.org/8879 Tested-by: Norbert Thiebaud <nthiebaud@gmail.com> Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
2014-03-24Revert "Resolves: #i124375# force soft-hyphen visibility for CoreText..."Caolán McNamara
prefer 4dba6f5837539746293ef6808ea39a764ab7654d "fdo#67370: Hyphens are not visible in tagged PDF" This reverts commit 8214c1d6156c90cbf259b15cf1c8e15ea1c70daf.
2014-03-24Resolves: #i124375# force soft-hyphen visibility for CoreText...Herbert Dürr
to meet Writer+EEng expectations (cherry picked from commit c7243848547b19a3b237f18629b809d93ee821c4) Conflicts: vcl/aqua/source/gdi/ctlayout.cxx Change-Id: If580bcb517695ae1c94657ac9348ad36eda37e9d
2014-03-17fdo#67808 Fix Outline Font Effect support with CoreTextNorbert Thiebaud
We add a new DrawTextSpecial() virtual to SalLayout that allows to attempt to delegate font effects to the underlying native graphic system. The function return false if it was not capable of handling the effect, true otherwise. Right now only Outline Font effect on Coretext is actually handled that way. OutPutDevice is augmented to attempt to delegate the font decoration work, if the task was not handled properly it fallback on the generic code. Note: ideally these effects should really be part of the FontSelector info that is given during layoutting, and the layout should indicate which of these decorations it was able to manage natively but that is a much bigger architectural change.. this will do for now. Change-Id: I5eb1a15e985cc3f234ec3dee899f349f309b42cb Reviewed-on: https://gerrit.libreoffice.org/8599 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
2014-03-13fdo#55142 CoreText handling of trailing whitespace in justified modeHerbert Dürr
adapted from be899f92ba and 9581d8a5a9 by Herbert Dürr Change-Id: I24a1e3773764e94bce74c50a83a2cf202b468dda
2014-02-26fdo#64957: #i124233# prevent the accumulation of rounding errorsHerbert Dürr
in CTLayout::FillDXArry() Change-Id: I8ee83068d71275874e4af364df253251dfb41c8c
2014-02-26Use SAL_OVERRIDE consistently in CTLayoutTor Lillqvist
When adding SAL_OVERRIDE to the member functions marked virtual, I found one that was not an override of anything, and actually not used at all: GetGlyphOutlines(). Change-Id: I3e56caa6262b2f21f7f47e3851ab0e07bbc4b642
2014-02-26Remove visual noise from vclAlexander Wilms
Conflicts: vcl/source/app/settings.cxx vcl/source/window/dockmgr.cxx vcl/source/window/dockwin.cxx vcl/source/window/floatwin.cxx vcl/source/window/toolbox2.cxx Change-Id: Ie67681549a76e77064b09d4b5bf80fe4c6010341 Reviewed-on: https://gerrit.libreoffice.org/8339 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-01-06Resolves: #i123840# add and use the sal_GlyphId typeHerbert Dürr
Using the central definition adds consistency and cleans up many ad hoc declarations. The type sal_GlyphId will become a class in the future so that its bitfield operations etc. can then be isolated into nice methods. (cherry picked from commit c0a84ad10964fb7a65b6239cbe1cef8698b5d17b) Conflicts: vcl/aqua/source/gdi/salatslayout.cxx vcl/aqua/source/gdi/salgdi.cxx vcl/generic/glyphs/gcach_ftyp.cxx vcl/generic/print/genpspgraphics.cxx vcl/generic/print/glyphset.cxx vcl/generic/print/glyphset.hxx vcl/headless/svptext.cxx vcl/inc/generic/genpspgraphics.h vcl/inc/generic/glyphcache.hxx vcl/inc/os2/salgdi.h vcl/inc/quartz/salgdi.h vcl/inc/salgdi.hxx vcl/inc/sallayout.hxx vcl/inc/unx/salgdi.h vcl/inc/vcl/fontmanager.hxx vcl/inc/win/salgdi.h vcl/os2/source/gdi/os2layout.cxx vcl/os2/source/gdi/salgdi3.cxx vcl/source/gdi/pdfwriter_impl.cxx vcl/source/gdi/sallayout.cxx vcl/source/glyphs/gcach_ftyp.hxx vcl/source/glyphs/gcach_layout.cxx vcl/source/glyphs/glyphcache.cxx vcl/source/glyphs/graphite_layout.cxx vcl/unx/generic/fontmanager/fontmanager.cxx vcl/unx/generic/gdi/gcach_xpeer.cxx vcl/unx/generic/gdi/gcach_xpeer.hxx vcl/unx/generic/gdi/salgdi3.cxx vcl/unx/generic/gdi/xrender_peer.hxx vcl/unx/headless/svpgdi.hxx vcl/unx/headless/svppspgraphics.cxx vcl/unx/headless/svppspgraphics.hxx vcl/win/source/gdi/salgdi3.cxx vcl/win/source/gdi/winlayout.cxx Change-Id: Ic629131950360e2df4c15db30d6a5362193c6330
2013-12-12Much better fix for the iOS text colour problemTor Lillqvist
Just use the same simple trick as for OS X in OutputDevice::ImplLayout(). Thanks to Khaled Hosny for pointing out this. This reverts commit 9aba69e8cc034526c53f6135a41fc62dc3c5dce3. Change-Id: I27ba92ef8ebd1ebdb9eb74f670d8170649078881
2013-12-12Fix the iOS coloured text problemTor Lillqvist
The eventual text colour is not known yet when LayoutText() is called. So we need to re-do the layout and justification in DrawText() in case we have a text colour. For some reason this is needed only on iOS. On OS X, the original code manages to display coloured text correctly. But then, on iOS a virtual device is used, and who knows what other strange things going on. Some of the scary warnings printed make you a tad unsure everything is working correcly... (Like "SdrPageView::DrawLayer: Creating temporary SdrPageWindow (ObjectContact), this should never be needed (!)") Change-Id: Ide99c163dea0f758a373c8dab9c54681ff57f624
2013-12-06Re-organize OS X and iOS code in vcl a bitTor Lillqvist
Now with the ATSUI code gone is a good time for some re-organisation. Get rid of "aqua" in file names and the separate "coretext" folders. CoreText is all we use now for OS X (and has always been so for iOS), so no need for a "coretext" folder, we can keep the CoreText-using code under "quartz". Keep OS X -specific code in "osx". Ditto for headers. Keep "Aqua" as part of class names for now, though. This is also preparation for planned further unification between OS X and iOS code. Change-Id: Ic60bd73fea4ab98183e7c8a09c7d3f66b9a34223