summaryrefslogtreecommitdiffstats
path: root/src/gui/text
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | Removing a left over #if 1..#endif constructAlessandro Portale2010-09-021-8/+1
| | | |
| * | | Fix broken S60 buildJiang Jiang2010-09-022-1/+7
| | | | | | | | | | | | | | | | Reviewed-by: Liang Qi
| * | | Keep mirrored char handling consistent between some font enginesJiang Jiang2010-09-023-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mirrored character subsitution should be used in right-to-left text direction unless the font is a symbol font. This patch will keep this behavior consistent between FreeType, QPF and S60 font engines. For Mac font engines, the shaping process is delegated to Core Text or ATSUI, so we don't do mirrored char handling by ourselves. Task-number: QTBUG-3852 Reviewed-by: Lars Knoll
| * | | Fix symbol font detection in generic CMap decodingJiang Jiang2010-09-021-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For fonts that have an AppleRoman name table, *isSymbolFont failed to return correct value even if they have a symbol table. This patch corrected this behavior by using symbolTable variable to detect that instead of checking if score == Symbol. Also prefer symbol table over AppleRoman table to make generic CMap decoding consistent with QFontEngineFT (which will use the symbol table whenever its available). Task-number: QTBUG-3852 Reviewed-by: Lars Knoll
| * | Fix compiling issue for FreeType version earlier than 2.1.10Jiang Jiang2010-09-011-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FT_GlyphSlot_Embolden was introduced since FreeType 2.1.10 and we started using it since 4.7. Some systems (including RHEL/CentOS 4) only provide earlier versions will get a compiling error if they use -system-freetype to build Qt. This patch fix it by providing a graceful degradation when the function is not available. Task-number: QTBUG-13274 Reviewed-by: Eskil
| * | QTextEngine::LayoutData::reallocate musn't corrupt memoryJoão Abecasis2010-08-311-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... on re-allocation failure. So, let's actually check the returned pointer and fail, instead of using Q_CHECK_PTR. Task-number: QT-3785 Reviewed-by: Peter Hartmann Reviewed-by: Samuel Rødal
* | | Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/qt-doc-team into doc-4.7Morten Engvoldsen2010-09-022-3/+4
|\ \ \ | |/ / |/| |
| * | Clarified iterator semantic in documentation and added a code snippet to a ↵Jerome Pasion2010-08-311-2/+3
| | | | | | | | | | | | | | | | | | | | | QML signal handler. Reviewed by: David Boddie Tasks:QTBUG-13243, QTBUG-11779
| * | Fixed spelling, broken links, and missing default values.Jerome Pasion2010-08-301-1/+1
| | | | | | | | | | | | | | | Tasks: QTBUG-13271, QTBUG-13212, QTBUG-12321 Reviewer: David Boddie
* | | Correct last right bearing in boundingBox(glyphs)Jiang Jiang2010-08-277-17/+26
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 07880542ecc479807c23c5646d263135240822ff introduced regression to QFontMetrics::boundingRect and QTextEngine::boundingBox on FT, XLFD and QPF font engine. Because on these platforms, rightBearing of the last glyphs is already removed from the width returned in glyph_metrics_t. Subtracting that rightBearing twice will cause the resulting boundingBox smaller than expected. This patch fix this by removing last right bearing accounting code from generic QTextEngine::boundingBox, instead, we put it into font engines that need them: QFontEngineWin, QCoreTextFontEngine, QFontEngineMac, QFontEngineS60 and QFontEngineQWS. So that the resulting width should be correct on all platforms without introducing any performance penalties. Task-number: QTBUG-6854, QTBUG-12950 Reviewed-by: Eskil
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7Gunnar Sletta2010-08-244-16/+35
|\ \
| * | Ignore LayoutDirectionChange event in QTextControlJiang Jiang2010-08-191-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | LayoutDirectionChange should no longer affect text direction in 4.7, by ignoring this event in QTextControl, we make the behavior consistent with QLineEdit. Reviewed-by: Lars Knoll
| * | respect the layout direction in the default text optionLars Knoll2010-08-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression against 4.6 where setting the default layout direction for rich text got ignored Task-number: QT-3566 Reviewed-by: Jiang Jiang
| * | Disable minRightBearing optimization in QTextLayout on MacEskil Abrahamsen Blomfeldt2010-08-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither of the Mac font engines have implemented minimum right bearing, which will cause them to return 0 for the minimum value. This will cause the right bearing to never be calculated prior to breaking and thus never be a part of the breaking width. Since actually implementing the functions is too time consuming for right now, we will disable the optimization for the time being. Reviewed-by: Olivier
| * | doc: Clarify documentation of QStaticTextEskil Abrahamsen Blomfeldt2010-08-091-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | There has been some confusion concerning what HTML tags can be used when using the rich text format with QStaticText. This patch attempts to make it clearer in the documentation that the tags have to be text related. Reviewed-by: Samuel
| * | Fix scrollbar randomly popping up in QPlainTextEditEskil Abrahamsen Blomfeldt2010-08-091-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a line break was detected, we would retain the value of the right bearing for the character after the break instead of resetting it to the right bearing of the previous value. This could in some cases cause the bounding rect of the text to be wrong, and could cause unnecessary horizontal scrollbars to pop up. It was especially visible when using WrapAnywhere. Visible e.g. in the compile output in Creator. Done-by: mae Reviewed-by: Eskil Reviewed-by: Lars
* | | Use binarysort to find items.Gunnar Sletta2010-08-242-14/+29
|/ / | | | | | | | | Task: http://bugreports.qt.nokia.com/browse/QTBUG-231 Reviwed-by: Eskil
* | Fix QTextEngine overflow caused by extremely long textJiang Jiang2010-08-053-33/+87
| | | | | | | | | | | | | | | | | | | | | | | | Internally, QTextEngine use int to calculate most of the layout data required. If a string longer than 2^24 is passed into either QTextEngine or classes using it (QStackTextEngine, QPainter, QFontMetrics, etc.), overflow will happen because the memory size required to allocate for layout will become too large for int to handle. This patch will prevent these cases and add error handling mechanism for relevant code. Task-number: QT-3658 Reviewed-by: Eskil Abrahamsen Blomfeldt
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-021-3/+29
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Doc: updating index page, x platform and platform spec. Removing redundant style files Added notice that some links are online documents. Modified qtdemo so error does not appear when there is no demo/example description availablei (QTBUG-12522). There is already output when building Qt that a description is missing -- the user does not need to witness an error about ensuring the documentation has been built just because a description has not been contributed. Fix Japanese characters not displayed in webkit on Mac Cocoa 64 (Regression) configure: don't symlink the mkspecs/features directory Doc: adding changes to getting started and fixing redirection links doc: Fixed many qdoc errors. Fixed potential infinite loop in QFileSystemWatcher on Mac. qdoc: Removed exclusion of declarative directories in qt-api-only.qdocconf Fixed comment about all enums being accessible in QML. Fix for QTBUG-12527. Simplify network manager settings code. Use an enum to return the bearer type of a network configuration. Rename QNetworkConfiguration::bearerName() function.
| * | Fix Japanese characters not displayed in webkit on Mac Cocoa 64 (Regression)Simon Hausmann2010-08-021-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Our stringToCMap implementation for CoreText that bypasses the shaping needs to have basic support for font cascading / glyph substitution. We now use CTFontCreateForString to determine the substitute font for missing glyphs. Task-number: QTBUG-12411 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
* | | Fix crash when setting font decorations on text drawn with QStaticTextEskil Abrahamsen Blomfeldt2010-08-021-1/+6
|/ / | | | | | | | | | | | | | | | | | | Qt has a run-time assert for implementing drawPolygon() in any subclass of QPaintEngine, which will be hit if set font decorations on the font used by QStaticText. Since we don't care about line decorations or any other shapes drawn in the QTextLayout, we simply leave the implementation empty. Reviewed-by: Gunnar
* | Merge remote branch 'origin/4.6' into 4.7-from-4.6Rohan McGovern2010-07-291-1/+4
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebKit/qt/ChangeLog src/gui/itemviews/qlistview.cpp tests/auto/qlistview/tst_qlistview.cpp tests/auto/qnetworkreply/test/test.pro tests/auto/qsocks5socketengine/qsocks5socketengine.pro
| * Workaround for QTBUG-8013: Do not return an ascent of 0Alessandro Portale2010-07-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Symbian's CFont::FontMaxAscent() returns in some cases an incorrect value of 0. That usually happens (for some font sizes) if a stroke based font is the main system font. We were able to reproduce it on some S60 3.2 devices with a chinese language pack installed. This patch will test if CFont::FontMaxAscent() returns 0. And if so, it alculates an ascent taht makes more sense. Task-number: QTBUG-8013 Reviewed-by: Liang Qi
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-07-212-4/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Use aligned load for the blending of RGB32 over RGB32 tst_moc: workaround gcc bug. Some more change to the changelog Fix compilation with QT_NO_GRAPHICSVIEW Updates changes-4.7.0 Fixes the Oracle nchar bug when NLS_CHARSET is different with NLS_NCHAR_CHARSET. Add a missing file in the config.test for SSE 4.2 Remove the masking when computing qAlpha() Add support for more vector instructions on x86 Workaround gcc bug, disable test with old version of gcc Do not crash due to a infinite recursion when using voiceover on MacOS doc: Fix qdoc errors for text related files QGraphicsItem: Animation leaves drawing artifacts when clipping is used. moc: Slot with complex template default value does not compile
| * | doc: Fix qdoc errors for text related filesEskil Abrahamsen Blomfeldt2010-07-202-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | QTextBlock::layoutDirection() doesn't exist, and the QStaticText constructor no longer takes a size argument. Task-number: QTBUG-12072 Reviewed-by: Fabien Freling
* | | Merge branch 'raptorConfigurePatches' into 4.7-s60axis2010-07-211-2/+0
|\ \ \ | |/ / |/| | | | | | | | | | | Conflicts: configure src/sql/drivers/drivers.pri
| * | Fixed QT_NO_FREETYPE define.axis2010-07-211-2/+0
| | | | | | | | | | | | | | | | | | | | | This define is also used by the OpenVG module, and therefore needs to be defined everywhere. RevBy: Jason Barron
* | | Remove qMemCopy() usage from all .cpp files of Qt itself.Robin Burchell2010-07-183-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | This is (supposedly) more efficient as the compiler can optimise it to a builtin, per Thiago. Merge-request: 2430 Reviewed-by: Andreas Kling <andreas.kling@nokia.com>
* | | Merge remote branch 'origin/4.7' into 4.7-from-4.6Rohan McGovern2010-07-174-9/+34
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: tests/auto/qtexttable/tst_qtexttable.cpp
| * \ \ Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2010-07-161-1/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: Fix RightBearing confusion in text layout fixes, improvements for various docs and example code Fixed debugger's evaluation of dynamic properties in context Allow test to pass on smaller screens (eg. 480 high). Minor animation doc improvement
| | * | | Fix RightBearing confusion in text layoutmae2010-07-161-1/+1
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Negative RightBearing was wrongly taken into account when calculating the line wrap Reviewed-by: Eskil Abrahamsen Blomfeldt
| * | | Fix an Assert in QTextTablePierre Rossi2010-07-141-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was caused by the fragment id being inserted in front of a cell spanning over several rows instead of the next logical cell (or fragment_end) in the cells structure. Task-number: QTBUG-11282 Reviewed-by: Simon Hausmann
| * | | Revert "Fix an Assert in QTextTable"Aaron McCarthy2010-07-141-24/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b2a4c7f0142a48f60e7ec4fc5866917e3da8b7c3. Unit test tst_qtexttable::QTBUG11282_insertBeforeMergedEnding fails on mac and Linux, reverting for now.
| * | | Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7Martin Smith2010-07-131-4/+24
| |\ \ \
| | * | | Fix an Assert in QTextTablePierre Rossi2010-07-131-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was caused by the fragment id being inserted in front of a cell spanning over several rows instead of the next logical cell (or fragment_end) in the cells structure. Task-number: QTBUG-11282 Reviewed-by: Simon Hausmann
| * | | | doc: Fixed several qdoc warnings.Martin Smith2010-07-131-3/+3
| |/ / /
| * | | Fixing merge conflicts.Martin Smith2010-07-136-27/+46
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge branch '4.7-upstream' into 4.7 Conflicts: doc/src/declarative/advtutorial.qdoc src/declarative/graphicsitems/qdeclarativeloader.cpp src/declarative/graphicsitems/qdeclarativetextedit.cpp src/declarative/qml/qdeclarativeengine.cpp src/declarative/util/qdeclarativexmllistmodel.cpp
| * | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-07-101-1/+6
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (59 commits) Doc: Cleaning style and adding support for Creator Add NTLMv2 authentication support to QAuthenticator. QIODPLB: Sync behavior of ungetBlock() and ungetChar() QFileIconProvider: Load icons on demand. Doc: fixing offline style Fix handling of SSL certificates with wildcard domain names Doc: fixing examples link doc: Fixed several qdoc warnings. doc: Fixed several qdoc warnings. SSL library loading: load system libs only once Revert "SSL backend: load libraries for certificates only once" doc: Fixed several qdoc warnings. doc: Fixed several qdoc warnings. doc: Fixed several qdoc warnings. doc: Fixed several qdoc warnings. doc: Fixed several qdoc warnings. Doc: Adding support for Qt Creator style doc: Fixed last of the declarative/QML qdoc warnings. qdoc: Marked some missing declarative properties and functions as \internal. qhelpgenerator: Fix namespace syntax checking. ...
| | * | | doc: Fixed several qdoc warnings.Martin Smith2010-07-091-1/+6
| | | | |
* | | | | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-07-151-3/+4
|\ \ \ \ \ | |_|_|/ / |/| | | / | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h src/3rdparty/webkit/WebCore/page/FrameView.cpp src/3rdparty/webkit/WebCore/page/FrameView.h src/3rdparty/webkit/WebCore/platform/ScrollView.cpp src/3rdparty/webkit/WebCore/platform/ScrollView.h src/corelib/plugin/quuid.cpp src/gui/dialogs/qfontdialog.cpp src/multimedia/audio/qaudiodevicefactory.cpp src/opengl/qgl.cpp src/openvg/qpaintengine_vg.cpp tests/auto/qxmlquery/tst_qxmlquery.cpp
| * | | Fix crash when removing columns in merged rowEskil Abrahamsen Blomfeldt2010-07-071-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 4b709b41f5a7ae8dc6e537b644158f5201ce0a98 tried to make sure that rows with merged cells would not be completely removed, as this would cause a crash. However, when removing just a few columns from a merged cell, the span of the cell should be reduced by the number of columns removed. The "touched" guard would cause the span to be decreased a maximum of one time, regardless of how many columns were removed, leaving the table in an invalid state, as the column count would be smaller than the span of the cell. This would assert later on. To avoid this, we only guard against removal, not against decreasing the span. Task-number: QTBUG-11646 Reviewed-by: Thomas Zander
* | | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-07-121-1/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Minor modifications and optimizations to the Symbian HW glyph cache. Convert to new EGL API. Don't invert glyphs for the default VG font cache on Symbian. Move QVGFontGlyphCache from source file into a separate header Ensure glyphs are upright instead of upside-down. Enable cross-process glyph cache for OpenVG graphics system on Symbian. Factor out RSgImage -> VGImage conversion to separate function. Add new file for Symbian specific VG stuff and add Symbian glyph cache. Move QVGFontGlyphCache from source file into a separate header Make cacheGlyphs() function (and the destructor) virtual.
| * | | | Enable cross-process glyph cache for OpenVG graphics system on Symbian.Jason Barron2010-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces a specialized OpenVG font cache for the Symbian platform. By using RGlyphDataIterator we can create a VGImage to store inside a VGFont without having to upload our own glyph image. This works by utilizing RSgImage which can be used to share handles to graphics memory across processes thus allowing glyph images to be shared by multiple processes and reducing graphics memory usage. Reviewed-by: Alessandro Portale
| * | | | Add new file for Symbian specific VG stuff and add Symbian glyph cache.Jason Barron2010-07-121-0/+1
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Factor out the Symbian specific bits of QVGPixmapData into a separate file and introduce our subclassed implementation of the VG font cache. Also make our font cache a friend of the S60 font engine because the cache needs to access the CFont member to create the glyph image. Reviewed-by: Alessandro Portale
* | | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2010-07-105-26/+44
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (65 commits) Fix QTextDocument::markContentsDirty() Replace 4.6 in all .qdocconf files Resetting bindings through debugger interface Fix crash with invalid role indexes Make test pass and fix docs following removal of SpringFollow Remove autotests of depracted element SmoothedFollow doc improvements Clean up at the end of each test. Improve test reliability. Fix crash Follow -> Behavior Added some documentation to spring animation Fix spring animation Update QtDeclarative def files Fix exponential behavior of QTextCursor::removeSelectedText Optimization: change signal/slot to function call Don't show warning for attempts to load pixmaps asynchronously Remove Image::pixmap property. QML applications should use Update QmlChanges.txt Don't double delete cancelled pixmap cache requests ...
| * | | Fix QTextDocument::markContentsDirty()mae2010-07-091-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function markContentsDirty(from,length) is documented to inform the document that it needs to lay out again the part from from to from + length. Trouble was that the function was implemented using beginEditBlock()/endEditBlock(), which has the negative side effect that it does increase the document's revision number and emits all sorts of contentChanged() signals. This did not matter from the one case where Qt uses the method itself in QSyntaxHighlighter, because here a private flag inContentsChange avoided the issue. Without the change, we cannot implement semantic syntax highlighting in creator without expensive extra selections or triggering a full rehighlight via QSyntaxHighlighter. Done-with: Roberto Raggi Reviewed-by: Roberto Raggi
| * | | Fix crashmae2010-07-082-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Got introduced with change f62f6effab8d1551d8e5e5843dc478addee96de1 Reviewed-by: Roberto Raggi
| * | | Fix exponential behavior of QTextCursor::removeSelectedTextmae2010-07-082-3/+16
| | | | | | | | | | | | | | | | This is an improved version of 62db6c18c7f1f60819783ed5e1340e9fc09e072e
| * | | Revert "Fix exponential behavior of QTextCursor::removeSelectedText"Michael Brasser2010-07-072-8/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit 62db6c18c7f1f60819783ed5e1340e9fc09e072e, which introduced a regression in tst_qtextpiecetable::checkDocumentChanged
| * | | Fix performance of QTextDocumentPrivate::adjustDocumentChangesAndCursorsChristian Kamm2010-07-064-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the changedCursors list grew large, the function used to spend an extraordinate amount of time in QList::contains. The fix removes the changedCursors list outright and replaces it with a flag in QTextCursorPrivate. Done-with: mae