summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Fix assert when drawing lines with extreme coordinatesEirik Aavitsland2019-02-251-3/+1
| | | | | | | | | | For extreme coordinates, the rasterizer's width parameter could become NaN, which compares false with everything and hence would trigger an assert. Fixes: QTBUG-56434 Change-Id: I27abae6ab0bc94ce042be86ea0587095cdb7d487 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Turn bcm_host library into makeSpec sourceJoerg Bornemann2019-02-141-1/+2
| | | | | | | | | The bcm_host library couldn't be detected anymore. Let the makespec provide LIBDIR, INCDIR and LIBS for bcm_host to fix this. Change-Id: I4bc268504dc48edaf2884f1c14b745260fd9112c Fixes: QTBUG-73727 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QBackingStore: Make QPlatformBackingStore creation lazyTor Arne Vestbø2019-02-131-10/+13
| | | | | | | | | Some platform backing stores may require that the window has been created, so let's defer the platform backingstore creation until absolutely necessary. Change-Id: Ib93151c6473e3bbe77d994782d84289c2f63bcf2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QTextDocument: Do respect white-space:nowrapKai Koehne2019-02-131-1/+2
| | | | | | | | | | Prevent automatic insertion of line-breaks in blocks formatted with 'white-space:nowrap'. This follows the example of white-space:pre. Fixes: QTBUG-54787 Change-Id: If26f6a54106a02fe0e388947f6368ae4e86acf63 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Don't allow backingstore flush to non-raster surfacesTor Arne Vestbø2019-02-121-0/+18
| | | | | | Change-Id: I8e85706727a8c5f7585e34e3864c8a9f48481b92 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix two smaller bugs in the BiDi engineLars Knoll2019-02-091-18/+16
| | | | | | | | | | | | | | | | | | Remove wrong code changing the Bido level of line separators. This lead to wrong ordering of the string in case the line separator was meant to be ignored and the string should be rendered in one line. Line breaks are anyways already reset to the paragraph level by the algorithm and reordering is done on a line by line basis, so this will work correctly when doing proper line breaking. Secondly fix a small bug found while testing the above change, where we wouldn't set the correct levels for boundary neutrals and explicit embedding chars because we did that processing before we were fully done with the BiDi algorithm. Change-Id: Id88f91cd58d2ab29be864aef34ca1727c1586611 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix an assertion in the BiDi algorithmLars Knoll2019-02-091-14/+28
| | | | | | | | | | | | | The algorithm has been treating DirB inconsistently so far. initScriptAnalysisAndIsolatePairs was treating it differently than generateDireationalRuns leading to assertions. It wasn't visible in our test data, as DirB is in almost all cases the paragraph separator, where we split strings anyway. Change-Id: I7dc0e7bbcf30ee84d8781ea06097da023e371f05 Fixes: QTBUG-73238 Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix QTextTable:insertRows() for tables with spanning cellsLars Knoll2019-02-091-4/+8
| | | | | | | | | Don't resize the height of cells spanning several columns multiple times. Fixes: QTBUG-36713 Change-Id: I5eb45892f2008e6a4f85745b56efd04323e25673 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Include relevant example code in documentation of setUrlHandlerVolker Hilsheimer2019-02-061-0/+2
| | | | | | | | | | | | | | By only looking at the function prototype, it's tempting to assume that the handler needs to be registered with the usual SLOT macro. That is not the case. The code snippet is already included in the class description, but it doesn't hurt to repeat it here. Change-Id: If24fdca41a4bd976ebd1156c9e1106469388265c Fixes: QTBUG-50484 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: decrease confusion about HSV vs HSL in QColorEirik Aavitsland2019-02-051-29/+37
| | | | | | | | | | The non-qualified hue() and saturation() etc. refers to those values in the HSV, not HSL, color model. Make this more explicit in the documentation to avoid confusion. Task-number: QTBUG-73129 Change-Id: Ief337672966ac72d0d0c3606d8d68acf01ffe7ee Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Fix QColor::toCmyk() for rgb(0, 0, 0)Eirik Aavitsland2019-02-051-17/+22
| | | | | | | | | | | | | | We translate all pure gray colors into cmyk having c,m,y=0 and only the k value expressing the darkness. But a fix introduced to avoid division by 0 caused rgb(0, 0, 0) to be an exception to this; it ended up being translated as c,m,y,k=1 instead. Fix by catching the potential div-by-0 situation earlier and directly set the orthodox cmyk translation: c,m,y=0,k=1. Fixes: QTBUG-73171 Change-Id: I3774eaf9d96e096ac5c47c55d28881bea2bd1309 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Painter path stroking: fix capping of beziers ending in tight turnsEirik Aavitsland2019-02-051-13/+14
| | | | | | | | | | | | | For some overly tight beziers where the start or end point and the next control point are closer than the pen width, the stroker's shifting algorithm will produce a start/end tangent pointing in the opposite direction from what is expected, for one of the sides. This would break the square and round capping logic. Fix by detecting the situation in the capping function and reversing the tangent when necessary. Change-Id: I48f4f017403d7b289b0483dd2b3a7ff1bbd0cf2a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix xbm image format handler: properly reject invalid filesEirik Aavitsland2019-02-051-0/+4
| | | | | | | | | The read_xbm_header() function is used to check for valid file header, containing valid width and height values. But in case of an invalid file, the check could depend on uninitialized variables. Change-Id: I9f933ed6e38d86109e5b5a8d55fe763ab928d749 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Initialize bit_depthAlbert Astals Cid2019-01-311-2/+2
| | | | | | | | ==12==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x6b90ea in setup_qt /src/qtbase/src/gui/image/qpnghandler.cpp:360:32 Change-Id: Idf04130e645dcf589dfb6260661be18a71b7bdc2 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QPictureIO::read(): don't work on dangling pointerChristian Ehrlicher2019-01-301-2/+2
| | | | | | | | | | QPictureIO::read() is using pictureFormat() when the format has to be guessed. pictureFormat() returns a QByteArray which was implicit casted into a char* and then pointed to uninitialized memory. Fix it by using a QByteArray instead a plain char*. Change-Id: If9ae286ed68134af597f0b0c779789e40f9efaed Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* png: initialize color_type to 0Albert Astals Cid2019-01-301-2/+2
| | | | | | | | | | Fixes ==12==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x6b8179 in setup_qt /src/qtbase/src/gui/image/qpnghandler.cpp:247:9 on fuzzed file Change-Id: I772d536a0db91665dc16e94751ef507de1064376 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix default font properties when using raw fonts for text layoutsEskil Abrahamsen Blomfeldt2019-01-291-4/+5
| | | | | | | | | | | | | | When a QRawFont is set explicitly on the layout, we would get certain font properties from the QTextCharFormat instead. But when the properties had not been set on the QTextCharFormat, we would get the default values which were always 0/false, not the actual default values used in QFont. Instead, we calculate a QFont query based on the format and use the properties from this. This will give us the correct default values in the cases where they are not overridden. Change-Id: I53e5103739164c3d9eafaf76fcb4e8bda57bd12a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fixups for GL_CONTEXT_LOST in QOpenGLExtensionMatcherDavid Edmundson2019-01-291-2/+11
| | | | | | | | Fixes the rest of the places we use the pattern of emptying the OpenGL error stack to be able to handle GL_CONTEXT_LOST. Change-Id: Ic45024fc6df84d70d60c48831fa586f889af0c0b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove requirement to lock graphics buffer before getting total sizeTor Arne Vestbø2019-01-291-1/+0
| | | | | | | | | | QPlatformGraphicsBuffer::byteCount() shouldn't need locking unless bytesPerLine() is implemented in a way that requires it, in which case the assert should be in the subclass. Change-Id: I0fdb04c0a3ab042408d6d17b2759509853573d16 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QtGui: Unify license headersKai Koehne2019-01-2932-197/+274
| | | | | Change-Id: I0a2553b95b099fdfa83d42e71bdf9a192a6588c7 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Prevent QPixmap::load from touching QPixmapCache in non-gui threadsJoni Poikelin2019-01-281-4/+6
| | | | | | Change-Id: Ied0fec48c81298743f694f317dd60e58d356f69a Fixes: QTBUG-72523 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* configure: handle FREETYPE_* variablesEric Lemanissier2019-01-241-1/+2
| | | | | | | | | | | This allows the user to set the following variables: FREETYPE_INCDIR FREETYPE_LIBDIR FREETYPE_LIBS Fixes: QTBUG-72765 Change-Id: Ib70b30f355cc2185c45233e0cfe5e6e55acdf2b6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Always unlock graphics buffer after binding texture during composeAndFlushTor Arne Vestbø2019-01-241-0/+1
| | | | | | | | | | The code path for re-generating the texture already has the unlock, but the non-regenerating code-path was missing an unlock, causing asserts when the graphics buffer was then attempted to be locked (again) at a later point. Change-Id: Ic65add838360079829b7e81d7c1cfe2274959059 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Merge remote-tracking branch 'origin/5.12.1' into 5.12Qt Forward Merge Bot2019-01-238-19/+24
|\ | | | | | | Change-Id: Icebd151eae0cf9d400319a42573290d1a911ce26
| * bmp image handler: Reject invalid 0-dimension files earlyEirik Aavitsland2019-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | Avoid spending time on decoding attempt of invalid bmp files specifying height or width as 0. Change-Id: Ia6666088515eee54777f7154868fb7d07c6b4438 Done-with: Albert Astals Cid <albert.astals.cid@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
| * Fix PDF generation for locales using comma as decimal separatorAndre de la Rocha2019-01-081-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A previous change that extended the maximum PDF size has caused the generation of invalid PDF output when the current locale was set to something using commas instead of points when outputting floating point numbers through printf(). This change uses QByteArray::number() instead, which uses points, irrespective of the current locale. Fixes: QTBUG-72868 Fixes: QTBUG-72848 Change-Id: I292eba2d6c89b3e01957bb8c04c04bdca8ada316 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tobias Koenig <tobias.koenig@kdab.com>
| * Fix a crash in QTextEngine when a paragraph only contains a tabLars Knoll2019-01-081-4/+8
| | | | | | | | | | | | | | | | | | | | This fixes a regression introduced by change c3d2d83fcb0f88de7d08cb7d088db8942e2e0f64. Change-Id: Idf840804c68cd6b1751e122b45e9dd2775af56f5 Fixes: QTBUG-72900 Fixes: QTBUG-72754 Reviewed-by: David Faure <david.faure@kdab.com>
| * Merge remote-tracking branch 'origin/5.12' into 5.12.1Liang Qi2019-01-0810-173/+436
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/widgets/kernel/qtooltip.cpp Change-Id: Ic2f9a425359050eb56b3a4e5162cf5e3447058c8
| * | Doc: Restore documentation for QTest functions in other modulesTopi Reinio2019-01-042-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt Test library sources specific to Core, GUI and Widgets modules were moved around in commit 88867e39b. The new source locations must be referenced in Qt Test documentation configuration. The same sources are excluded in their original doc projects, and the related snippet file is moved over to qttestlib. The commit also fixes the remaining documentation issues for Qt Test. Change-Id: Ibe011aa83639e574d647f12bc9e53e618781bce6 Reviewed-by: Martin Smith <martin.smith@qt.io>
| * | Doc: Fix link in QImage::load() documentationTopi Reinio2019-01-041-1/+1
| | | | | | | | | | | | | | | Change-Id: I9a3a059a860f5b21253ab0e7cdc616cbfc9a3885 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | Make QWindow::type() reflect ForeignWindow statusMorten Johan Sørvig2018-12-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The Qt::ForeignWindow flag is or’ed to d->windowFlags by QWindow::flags(). Use this getter function instead of accessing d->windowFlags() directly. Change-Id: I6a82aa7e379ba51272954ffe7b87f108034da8c6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| * | Fix layering violation in isForeignWindow()Morten Johan Sørvig2018-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QPlatformWindow::isForeignWindow() should return whether the native window is of the foreign window type, or false if the platform (plugin) does not support this concept. It should not call QWindow::type(), since that function may itself be implemented in terms of isForeignWindow(). Change-Id: Ib67a5a44c5c1db0acb4d3bc155e187f8164146d1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Fix change-of-sign warnings in ICC 19Thiago Macieira2019-01-231-1/+1
| | | | | | | | | | | | | | | | | | | | | error #68: integer conversion resulted in a change of sign Change-Id: I4ac1156702324f0fb814fffd156f80962df6b4a7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | fix crash if no screens are availableRolf Eike Beer2019-01-211-3/+6
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-73166 Change-Id: I936672b7a09a540d21e6dcd371f5ffe1e5536b85 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | configure: fix a bug where -no-xcb implied eglfs_x11=noGatis Paeglis2019-01-221-2/+1
| | | | | | | | | | | | | | | | | | Change-Id: I89bbef23a0abd7692b9bda7b356502f5450af6cc Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | QSyntaxHighlighter: cancel delayed highlight if done manuallyMårten Nordheim2019-01-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was an implicit effect before which stopped working after dec7961709c90f6977d2447f7fa6c6625af41cb2. Reintroduce it as some projects used this side-effect as a way to abort the initial highlighting. Change-Id: I5340ee9882a242bc8b5f7f843f1cfe793a65d357 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* | | Fix multiple emission of QGuiApplication::lastWindowClosed() when native ↵Friedemann Kleint2019-01-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | child widgets are used Run the handling in QWindowPrivate::maybeQuitOnLastWindowClosed() for top level windows only. Fixes: QTBUG-73061 Change-Id: I74deb50b06a64e8ef0e438d2abf14888f778a46e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | | Update QOpenGLTexture::generateMipMaps for ES 3Michael Brasser2019-01-151-4/+3
| | | | | | | | | | | | | | | | | | | | | Per the Khronos documentation, this operation is not permitted on ES 3. Change-Id: Iff70ef83d48228277b883df588011432ba80f4bd Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | Documentation: Add \nullptr macro and use where applicableFriedemann Kleint2019-01-1013-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt for Python users reading the documentation assume that int(0) can be passed for pointer parameters. Use the newly introduced \nullptr to disambiguate this. In a follow-up step, the \nullptr macro can be defined as None when generating the Qt for Python documentation. Task-number: PYSIDE-903 Change-Id: I3a45f87175a0668ab5f3f95f0aff409f7e3ef027 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Fix typo in fontconfig autotestKai Koehne2019-01-081-1/+1
| | | | | | | | | | | | | | | Change-Id: Ie6ef3aa654083cd23320eda99660ff85050d999c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | | Emit paletteChanged and send ApplicationPaletteChange on theme changeTimur Pocheptsov2019-01-082-0/+13
| |/ |/| | | | | | | | | Fixes: QTBUG-72575 Change-Id: I407e081295a456a7bdd36de91ca5bbf74bba6078 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Fix warnings about uninitialized variables - qrgba64_p.hLiang Qi2019-01-071-4/+4
| | | | | | | | | | | | | | | | | | | | In function 'QRgba64 rgbBlend(QRgba64, QRgba64, uint)': error: 'blend.QRgba64::rgba' is used uninitialized in this function [-Werror=uninitialized] qrgba64_p.h:246:13: note: 'blend' was declared here QRgba64 blend; Change-Id: I7b263f863281c51c7d8099704f2cffcc7e1a07df Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | configure: improve warning when all qpa plugins disabled with features.guiGatis Paeglis2019-01-071-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | The mentioned README file has never been very trustworthy and after 863c6887495c0bd9ee3a85aa7cd2d997cdc5c93c it has become very minimal - it doesn't contain anything that is not already present in "configure --help" and enforced by the configure process. Furthermore, the warning was XCB specific, but Qt supports also other QPA plugins on linux. Change-Id: I3211dda3f294cbcd5f3d15fe8c21a1af7627f048 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | configure: add XCB GL integration featuresGatis Paeglis2019-01-031-3/+23
| | | | | | | | | | | | | | | | | | This way Qt builders can see if everything has been configured properly for XCB GL integrations at configure time, instead of at the end of the build process. Change-Id: I00740cc2edd7f6ecfcda0ddfb22649d1b4db4aa2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* | configure: add X11 subsection in "Features used by QPA backends"Gatis Paeglis2019-01-031-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xcb-xlib is used by XCB and EGLFS_X11. xlib is used by XCB, EGLFS_X11 and offscreen plugin (not listed currently under "QPA backends"). egl_x11 is used by XCB GL integration plugin and EGLFS_X11. Renamed X11 -> XCB under "QPA backends", because that is the correct QPA name. Change-Id: I455ac3a41da3ab84453d8de0edc657c3a5e064c9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* | configure: make xcb-render a hard dependency for xcb pluginGatis Paeglis2019-01-031-26/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Its been available by default since at least libxcb 1.5, and in Qt 5.12 we have even increased the minimal required libxcb version to 1.9. Having configure switches for extensions is a legacy from Qt 4. There are still few exceptions in Qt5, where the reason is that we have to support Linux distributions that don't ship recent enough libxcb. Task-number: QTBUG-30939 Change-Id: I0a02d93b6411119ec018b0cb8fe5c63beeab62ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | configure: properly atomize render vs. renderutilGatis Paeglis2019-01-031-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xcb-render is a C interface for X11 extension. xcb-render-util is a utility library that complements xcb-render by providing convenience functions and interfaces which make the raw X protocol more usable. Bumped xcb-render-util version to avoid having include hacks. We were bundling 8 years old release 0.3.8 (Apr, 2011). 0.3.9 is the latest release and it was relesed 4,5 years ago (Jun, 2014). All CI machines have 0.3.9. The only thing that have changed in xcb-render-util sources since 2011 is that we don't need to have various hacks to include xcb_renderutil.h in C++ files. Upgrading bundled XCB libs was also requested in QTBUG-71109. Task-number: QTBUG-71109 Change-Id: Ib261f7584ad81be95660123b007e2200a3042f4c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* | Draw ShowTabsAndSpaces symbols with the correct fontEskil Abrahamsen Blomfeldt2019-01-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | We would draw the tab and space symbols without setting the correct font on the painter first. [ChangeLog][QtGui][Text] Fixed so ShowTabsAndSpaces will use the correct font. Fixes: QTBUG-62540 Change-Id: I3b7d6d317473e7aab722dafe1a128c57a830f634 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Don't dither antialiasing on glyphs when converting to monoEskil Abrahamsen Blomfeldt2018-12-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When glyphs are converted to monochrome from an alpha map, it does not make sense to apply high quality dithering, because the result will be that some the subpixels along the edges that cover only part of a pixel are filled. This causes the glyphs to look jagged and ugly. Instead, we use ThresholdDither to fill all pixels that are >= 50% opacity. [ChangeLog][QtGui][Text] Improved appearance of monochrome text on some platforms. Fixes: QTBUG-69702 Change-Id: I0f44a8d73f6b9f1eb59f297d66438575f1e9db10 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix text shifting vertically when elidedEskil Abrahamsen Blomfeldt2018-12-211-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When eliding text we would check for the existence of the ellipsis character and fall back to using the dot if it was not available. However, when font merging was in use, we would also use ellipsis from a fallback font if available. This could cause the metrics of the text to increase if the fallback font had larger metrics, and the result was that text could shift when elided. It is better to prefer the dot from the current font than to use the ellipsis from a fallback, so we only use the ellipsis if it is in the main font. [ChangeLog][QtGui][Text] Fixed a bug where eliding text could change the height of its bounding rectangle for certain fonts. Fixes: QTBUG-72553 Change-Id: Ib27fc65302465ddce661801bcc5ae32e55f1aeb9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>