summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.9' into 5.11Liang Qi2018-02-1411-32/+59
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/corelib/animation/qvariantanimation.cpp src/corelib/global/qglobal.cpp src/corelib/global/qlogging.cpp src/corelib/io/qprocess_win.cpp src/corelib/json/qjsonarray.cpp src/corelib/tools/qsimd_p.h src/corelib/tools/qtimezoneprivate_p.h src/corelib/xml/qxmlstream_p.h src/gui/kernel/qsimpledrag.cpp src/gui/kernel/qsimpledrag_p.h src/plugins/generic/generic.pro src/plugins/platforms/cocoa/qcocoamenu.mm src/widgets/styles/qmacstyle_mac.mm tests/auto/concurrent/qtconcurrentmap/BLACKLIST tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qmessagebox/BLACKLIST Change-Id: I508d686cf20f7f8cc6a7119b9bc7c3bbb505c58e
| * QSimpleDrag: Fix mouse release coords for delayed event transmissionEike Hein2018-02-012-8/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On platforms such as XCB, the drag cursor pixmap is shown via a window (a QShapedPixmapWindow) under the cursor. The mouse button release event at the end of the drag is received in this QXcbWindow, but intercepted by an event filter that QSimpleDrag installs on the QApplication. It then resends it unmodified(!) after the drag has ended and the drag pixmap window destroyed, causing it to be delivered to the new top-level window. The local coordinates in the unmodified QMouseEvent are local to the drag pixmap window and don't match the window it is delayed-transmitted to. This ends up having fatal, user-visible effects particularly in Qt Quick: QQuickWindow synthesizes a hover event once per frame using the last received mouse coordinates, here: the release posted by QSimpleDrag. This is done to update the hover event state for items under the cursor when the mouse hasn't moved (e.g. QQuickMouseArea:: containsMouse). The bogus event coordinates in the release event then usually end up causing an item near the top-left of the QQuickWindow to assume it is hovered (because drag pixmap windows tend to be small), even when the mouse cursor is actually far away from it at the end of the drag. This shows up e.g. in the Plasma 5 desktop, where dragging an icon on the desktop will cause the icon at the top-left of the screen (if any) to switch to hovered state, as the release coordinates on the drag pixmap window (showing a dragged icon) fall into the geometry of the top-left icon. QSimpleDrag contains a topLevelAt() function to find the top-level window under the global cursor coordinates that is not the drag pixmap window. This is used by the drop event delivery code. This patch uses this function to find the relevant top-level window, then asks it to map the global cusor coordinates to its local coordinate system, then synthesizes a new QMouseEvent with local coordinates computed in this fashion. As a result the window now gets a release event with coordinates that make sense and are correct. Task-number: QTBUG-66103 Change-Id: I04ebe6ccd4a991fdd4b540ff0227973ea8896a9d Reviewed-by: Eike Hein <hein@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Do not allow empty selectionsBogDan Vatra2018-01-271-0/+2
| | | | | | | | | | | | | | | | Allowing empty selections leads to strange behavior, it switches from selection handles to cursor handle. Change-Id: Ida69346e2a47b13c92cfd68a555d6b94422bb580 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Do a static_cast in bit-blasts that are UBVille Voutilainen2018-01-254-11/+11
| | | | | | | | | | | | | | | | | | | | | | Without this, building Qt and Qt applications fails with GCC 8. The errors look like this: writing to an object of type ‘class QPointer<QQuickPointerHandler>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] Task-number: QTBUG-65691 Change-Id: Ie5a30814125deca7a160b9a61f5aa3f944ee1ac9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Support for Q_OS_ANDROID_EMBEDDED and android-embedded build flagsOtto Ryynänen2018-01-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The Embedded Android build (Boot to Qt Android injection) is defined by having both Q_OS_ANDROID and Q_OS_ANDROID_EMBEDDED flags defined, as well as having Qt config android-embedded. This commit enables the possibility to build embedded Android builds. (i.e. Qt build for Android baselayer only, without JNI) Change-Id: I8406e959fdf1c8d9efebbbe53f1a391fa25f336a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Enable glyph cache workaround for Mali-T880Tero Alamäki2018-01-191-0/+1
| | | | | | | | | | Change-Id: I531e57c26e886cd8de09ca860d7e10b05d1a724b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Doc: Mention exact Qt version the third party attributions apply toKai Koehne2018-01-191-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do add, remove or update third party code in minor releases, sometimes even in patch level releases. However, the documentation is supposed to be valid for all existing Qt 5 versions, but doing this for attributions would require infrastructure we don't have. Therefore rather make it explicit which Qt version the attributions apply to. Also mention since when Qt is available under LGPLv3 (starting with Qt 5.4). Task-number: QTBUG-65665 Change-Id: I328b5bf0c143f78ea61aad51f0644c3cbb6dee49 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * configure: express dependency of fontconfig on freetype more clearlyOswald Buddenhagen2018-01-181-9/+4
| | | | | | | | | | | | | | | | | | | | | | use a "use" entry instead of including the transitive dep into the list of libraries. this also removes the redundant check of freetype features from the fontconfig test code. Change-Id: I86b78028255c9bf0a62be5ec0f97a62ef3fda36f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * configure: inline D3D11_QUERY_DATA_TIMESTAMP_DISJOINT testOswald Buddenhagen2018-01-181-1/+7
| | | | | | | | | | | | | | amends a96656a8fb. Change-Id: Ic434c272bfe985ea0410090537b8a22aad3192f1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix typosJarek Kobus2018-02-133-3/+3
| | | | | | | | | | Change-Id: Id625efea998f2b4dce9970b903830dc3b3efcd3d Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Doc: Fix links to QFontMetrics::width() overloadsAaron Linville2018-02-131-2/+2
| | | | | | | | | | | | | | | | | | Links to width(QChar) are incorrectly linking to QChar rather than to the intended QFontMetrics::width method. Task-number: QTBUG-65141 Change-Id: I1647885c735011ec3d99c535fdb8b7fc1bf57f99 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Merge remote-tracking branch 'origin/dev' into 5.11Liang Qi2018-02-1017-78/+190
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qvarlengtharray.qdoc src/corelib/tools/qvector.qdoc Resolved documentation changes in favor of 017569f702b6dd0, which keeps the move overloads along with its const-ref sibling. Change-Id: I0835b0b3211a418e5e50defc4cf315f0964fab79
| * | Unalias some core drawhelper loopsAllan Sandfeld Jensen2018-02-062-63/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some compilers will assume src and buffer are different and only vectorize the unaliased case and take a slow path when they are equal. In our case they are as often equal, so we need to manually unalias the variables to make sure both cases are fully optimized. Change-Id: I6ec86171dd179844facdf45376253c55980d9e36 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | QLineEdit: implement quick text selection by mouseElvis Angelaccio2018-02-036-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a standard feature in GtkEntry widgets or HTML <input type="text"> elements. During a normal text selection by mouse (LeftButton press + mouse move event), it's now possible to quickly select all the text from the start of the selection to the end of the line edit by moving the mouse cursor down. By moving it up instead, all the text up to the start of the line edit gets selected. If the layout direction is right-to-left, the semantic of the mouse movement is inverted. This feature is only enabled if the y() of the mouse move event is bigger than a fixed threshold, to avoid unexpected selections in the normal case. This threshold is set by the QPlatformTheme and a value smaller than zero disables this feature. The threshold is updated whenever the style or the screen changes. [ChangeLog][QtWidgets][QLineEdit] Implemented quick text selection by mouse in QLineEdit. Change-Id: I4de33c2d11c033ec295de2b2ea81adf786324f4b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | Support for LTTNG and ETW tracingRafael Roquetto2018-01-284-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces minimal support for instrumentation within Qt. Currently, only LTTNG/Linux and ETW/Windows are supported. Change-Id: I59b48cf83acf5532a998bb493e6379e9177e14c8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | Fix broken rendering of RGB30 and ARGB32 on machines with AVX2Allan Sandfeld Jensen2018-01-271-2/+2
| | | | | | | | | | | | | | | | | | | | | Two small changes late in the review process were flawed. Change-Id: I4b1f6e3fdb8e17000a2e11bc30aae1b29d9f43a9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | QListWidgetItem/QStandardItem: pass role to dataChanged() signalChristian Ehrlicher2018-01-263-8/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QAbstractItemModel::dataChanged() gained an optional role parameter with Qt5 which was not filled within QListWidgetItem/QStandardItem setData() functions Task-number: QTBUG-55903 Task-number: QTBUG-63766 Change-Id: I4da9346ef8401cc8633dc4b2ea7d00451d1e3942 Reviewed-by: Luca Beldi <v.ronin@yahoo.it> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
| * | Improve debug formatting of QInputMethodQueryEventFriedemann Kleint2018-01-241-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | Add more queries, output the query enumeration value and output the hints as flags. Change-Id: Icfc648a8d6e144074455ecebae1b25c3c3e1063e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | QPlatformWindow: add startSystemMove()Alexander Volkov2018-02-042-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It can be used by custom widgets or for example by the Breeze style from KDE, which allows to drag windows by some widgets. It's important on X11 because _NET_WM_MOVERESIZE requests induced by touch sequences require support from Qt. Task-number: QTBUG-58044 Change-Id: I31c37534555a9050cf361cad85bdef13c2808572 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | doc: Add tests of Q_CLANG_QDOCMartin Smith2018-02-032-6/+6
| | | | | | | | | | | | | | | | | | | | | Some defined(Q_CLANG_QDOC) uses were added. Change-Id: I5688fee0d0d8f00bb97e3e63bd02a68ddbfdda11 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Skip QWSIF::WindowScreenChanged events if the screen is unchangedFriedemann Kleint2018-02-021-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | WindowScreenChanged events might be reported repeatedly from the QPA backends until the event has reached GuiApplicationPrivate::processWindowScreenChangedEvent() which sets the screen. Ignore events in case the screen is already correct. Task-number: QTBUG-65580 Task-number: QTBUG-62971 Change-Id: Ie5fc9830771e816db942355efbe5a48e829914cb Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* | doc: Fix many qdoc warnings, mostly missing return typesMartin Smith2018-01-245-32/+11
| | | | | | | | | | | | | | | | | | | | | | Fixed many cases of missing return types in \fn commands. Added a fake GLxxx typedef for a GL type that wasn't there because the GL includes weren't accessible. Also added some fake declarations for a few functions declared in namespace Qt in QtWidgets that must be seen by qdoc in QtCore. Change-Id: Id82476042d0563d32fa85c4ae81a58c1298a468a Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | QTextItemInt: replace 0 with nullptrAnton Kudryavtsev2018-01-221-6/+18
| | | | | | | | | | | | | | | | | | While touching the code, move initialization from body of ctor to initializer list Change-Id: Idfcb4fb771d1414268f8685874395ca54b20621a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-203-12/+13
|\ \ | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: If089d5010d15c33b3c1f13912d4386207456c1a9
| * | Skip arm pixman drawhelpers on windows just like on iosMartin Storsjö2018-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows on arm (which uses clang, or msvc, but no gcc is available for that setup) can't assemble these sources. (On linux, builds with clang force deferring it to the external assembler, but for windows on arm, no gas compatible external assembler is available). Change-Id: I139572257884cfdc57d3c32061a8c2e28c6e24de Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Tor Arne Vestbø2018-01-162-11/+12
| |\ \ | | |/ | | | | | | Change-Id: I896b0cf54f317c4336cc3d3db319a0b89e421728
| | * Doc: Clarify auto detection of file format in QImageEirik Aavitsland2018-01-151-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation of the QImage file loader methods contained a simplified and somewhat misleading description of the format auto detection algorithm. Fix up the language and link to the detailed explanation. Task-number: QTBUG-51596 Task-number: QTBUG-65438 Change-Id: I33ebc81c78e685c7ec4803fa56efd4e9cbc4eda5 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| | * Warn when ending painting on backingstore while there's still an active painterTor Arne Vestbø2018-01-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's no way for the backingstore to end painting on the device by itself, so we warn the user about what's going on. Failing to end painting on the device will e.g. in the case of QRasterBackingStore result in having to make a copy of the QImage data during flush. Change-Id: I3fbac2d7a8a440fdb23197ac2d57d95bfaf9e125 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Fix explicitly set width not being respectedIgor Mironchik2018-01-201-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The size of the QStaticText was always adjusted, even if setTextWidth() was used. Now size of the QStaticText is calculated according to the set width of the text, and if no width was set, then the automatically adjusted size is used. [ChangeLog][QtGui][QStaticText] Fixed explicitly set width not being respected. Task-number: QTBUG-65836 Change-Id: If2f9f6952fb168f4bcb6d8fabfdc7360f8a36485 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Use QColor(0, 0, 0, 0) to mark body text in QStaticTextIgor Mironchik2018-01-203-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QStaticTextPrivate::paintText() now uses QColor(0, 0, 0, 0) to mark body text. QPainter's pen color was used before this commit (that was always black) that leads to different colors of body text if, for example, links are in body (first block painted with correct color set by QPainter::setPen() but after link body text was always black). Now QPainter::drawStaticText() will draw body text with set pen in any case. [ChangeLog][QtGui][Important Behavior Changes] Fixed a bug where QStaticText would not use the QPainter's pen color for text when other text colors were also in use. Internally this reserves QColor(0, 0, 0, 0) for use with QStaticText. Task-number: QTBUG-45957 Change-Id: If3e180e3083cdac1b4236e738acd15572f19ab69 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | QFontEngine: use QStringBuilder moreAnton Kudryavtsev2018-01-181-7/+6
| | | | | | | | | | | | | | | Change-Id: I7dd00080962a245e5fc67ef623d7b3a4dab69c80 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | doc: Fix remaining qdoc warmings for Vulkan stuffMartin Smith2018-01-185-5/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several uses of #if QT_CONFIG(vulkan) were modified to for classes QVulkanFunctions and QVulkanDeviceFunctions was added to qplatformvulkaninstance.h, because the include file that contains them doesn't exist when vulkan isn't there. Change-Id: I392202ab5fe9bb4c558a991870e6ebf79254aec0 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Add missing return types to \fn commandsMartin Smith2018-01-185-29/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Added void return type to several \fn commands. The return type should always be included with the \fn command in clang-qdoc. Change-Id: Ie751eb1430eff668f33f8d86e0b1454bd1d2f582 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Introduce QIcon::fallbackSearchPaths()Alexander Volkov2018-01-157-8/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... that will be used if an icon can't be found in the current theme. The Icon Theme Specification https://standards.freedesktop.org/icon-theme-spec/latest/ar01s05.html states that unthemed icons must be searched in the base directories, i.e. /usr/share/icons, ... But in practice unthemed icons are installed into /usr/share/pixmaps and this dir is not used as a base dir for icon themes. So it's better to explicitly specify fallback dirs to avoid needless access to the filesystem. Also some KDE application install their own unthemed icons (into /usr/share/<appname>/pics), that can't be found by QIconLoader. With this change it would be possible for them to specify dirs with unthemed icons and thus be displayed correctly in non-KDE environments. [ChangeLog][QtGui][QIcon] Added fallbackSearchPaths() that will be used to find icons missing in the current icon theme. Change-Id: I0dc55ba958b29356a3b0a2123d6b8faa24d4c91e Task-number: QTBUG-33123 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | doc: Add missing template clauses in qvulkaninstance.cppMartin Smith2018-01-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Added a few missing template clauses to member functions of QVulkanInstance<T>. Change-Id: Ie13f7e97f6a2183ee66d7ea275bc56a2bc3588e8 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Add missing template clauses in qmatrix4x4.cppMartin Smith2018-01-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Added a few missing template clauses to member functions and friends. Change-Id: Ie5ca557ddcc1dfd90ef5e80fc4e8213dfb32a03c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Add missing class qualifiers to uses of FormatRangeMartin Smith2018-01-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | struct FormatRange is contained in QTextLayout, so uses of it as parameters in friend functions of struct FormatRange must be qualified with QTextLayout:: Change-Id: I6d3ad3020240bff3b948fb571971694b44708c54 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Add missing class qualifiers to uses of TabMartin Smith2018-01-121-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | Tab is contained in QTextOption, so it needs that class qualifier. Also removed a useless qdoc comment. Change-Id: Ic37f0fc8cb97c2b022f69293e8fd50f0a5a2b649 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Add missing class qualifier to \fn for constructorMartin Smith2018-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | A class qualifier was missing in a \fn command. Change-Id: I0bb34912c0b33a3c615a6e9aef68e7e0cd28d037 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | doc: Add QTouchEvent qualifier to uses of QTouchPointMartin Smith2018-01-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | QTouchPoint is declared inside QTouchEvent, so \fn commands for functions in QTouchPoint must use QTouchEvent::QTouchPoint:: as the qualifier. Change-Id: I1dffe9f43f9f8bddbaa8fab9f77cf17802cf8b26 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.10' into dev" into ↵Liang Qi2018-01-125-61/+132
|\ \ \ | | | | | | | | | | | | refs/staging/dev
| * \ \ Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-115-61/+132
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/harfbuzz-ng/src/hb-private.hh src/sql/doc/snippets/code/doc_src_sql-driver.cpp src/sql/doc/src/sql-driver.qdoc Change-Id: I38f0e82fcd37926cbf3c1915e009a731040d4598
| | * | Merge "Merge remote-tracking branch 'origin/5.9' into 5.10" into ↵Liang Qi2018-01-113-2/+71
| | |\ \ | | | | | | | | | | | | | | | refs/staging/5.10
| | | * \ Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-093-2/+71
| | | |\ \ | | | | |/ | | | | | | | | | | Change-Id: I840849c072075a69819eb185b20bc42c3de0f825
| | | | * Fix ZWJ and ZWNJ when fallback font is in useEskil Abrahamsen Blomfeldt2018-01-091-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When applying fallback fonts to characters that are joined by ZWJ or ZWNJ, we also have to set the same font for the control characters, otherwise we will split the text and the necessary shaping will not take place. This was reported for emojis, but will probably also happen for Indic scripts where joiners are used predominately. [ChangeLog][QtGui][Text] Fixed ZWJ and ZWNJ control characters when fallback fonts are in use. Task-number: QTBUG-65519 Change-Id: Ia37233f3319b95af68ae6053c29997eac65448e0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | | | * CoreText: Order fallback fonts based on writing system supportEskil Abrahamsen Blomfeldt2018-01-091-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After we stopped sanitizing the fallback font list (with change 6ca48a847a1805c3826004c5b989b4ae14397a37), we now need to make sure it is ordered so that the fonts that support the writing system in question are always tested first, otherwise we can end up loading a lot of fonts that will never be used. Task-number: QTBUG-65605 Change-Id: Id2a65bbff3e64e6d6e6b4f72500778ee3e811e84 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| | | | * Avoid providing bad pixelDeltas on X11Allan Sandfeld Jensen2018-01-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With libinput we now get a hardcoded resolution that is unrelated to the hardware. So avoid using that as a real pixel delta and document pixel deltas as being driver specific and unreliable on X11. Task-number: QTBUG-59261 Change-Id: I9fe86d80e7ccd290ed2e4091d7eafa52cb537d34 Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Marco Martin <mart@kde.org> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| | | | * Fix fallback fonts for non-common writing systemEskil Abrahamsen Blomfeldt2018-01-081-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we request fallback fonts, we cannot discriminate the fonts based on the writing system support. This is especially important since common script is now merged with other scripts, meaning that a common script character will always go through the fallback mechanism when not supported by the main font. When drawing for instance a string of Devanagari characters on macOS, we would get a list of 33 fallback fonts, but almost all of them would be the default Devanagari font, since none of the other fallbacks would support that script. Meaning that we would just check the same font over and over, which makes no sense. The fallback list has been retrieved specifically for the given script, so we do not need to consider that when fetching the fonts. For most of the common set, we will not have noticed the bug, because at least one of the writing system-specific fallbacks will have had support for latin characters as well. But when trying to mix emojis and some non-common script, we would get a box in place of the emoji, which had been adopted to the main script and would only be looked for in the fonts supporting this. Note that this exposed an issue with the QRawFont test on some systems. When the sample text contained a space, it would be possible to get a fallback font for this character, since we now effectively support fallbacks. This is not the correct behavior, but it is unrelated to this fix, and it was not what the QRawFont::unsupportedWritingSystem() test was written to check. I have therefore removed the space from the sample text to make the test pass, and will make a separate task of fixing the issue of merging fonts for whitespace characters. [ChangeLog][QtGui][Text] Fixed a bug where mixing different writing systems with emojis could lead to missing glyphs. Task-number: QTBUG-61882 Change-Id: I00f6043bb01af1f2277723ccf643034aebf3e18f Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| | * | | Doc: Swap unresolved variables with actual function namesPaul Wicking2018-01-101-44/+44
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original documentation commit included unresolved link target names. This fix replaces them with the actual OpenGL function names. Change-Id: I36a24eb237ef35d7207f3bae0771dc96476d7b19 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | * | Make QPalette::setBrush() check before detachingGabriel de Dietrich2018-01-041-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting the same brush on the same group and role should not detach nor alter the result of QPalette::isCopyOf(). Task-number: QTBUG-56743 Change-Id: Ic2d0dd757d703b01e8c5d835a8c124b3317653f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>