summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
Commit message (Collapse)AuthorAgeFilesLines
* Properly free m_mtdev when mtdev_open() returns an errorSteffen Kieß2020-08-261-0/+1
| | | | | | Pick-to: 5.15 Change-Id: I57813da1eafe9fbc9d60b865e867558791e34528 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Remove linuxofonoFriedemann Kleint2020-07-157-635/+0
| | | | | | | | | The module appears to be unused. Task-number: QTBUG-83255 Change-Id: I0b6942734b8b4fcfd90515ba12d751ffccfad15c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move eglconvenience to QtGuiFriedemann Kleint2020-07-1317-2757/+0
| | | | | | | Task-number: QTBUG-83255 Change-Id: I8a008d8906308dd73a0793db5b88d3a1b6fdaf5c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Refactor pointer event hierarchyShawn Rutledge2020-07-102-38/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some goals that have hopefully been achieved are: - make QPointerEvent and QEventPoint resemble their Qt Quick counterparts to such an extent that we can remove those wrappers and go back to delivering the original events in Qt Quick - make QEventPoint much smaller than QTouchEvent::TouchPoint, with no pimpl - remove most public setters - reduce the usage of complex constructors that take many arguments - don't repeat ourselves: move accessors and storage upwards rather than having redundant ones in subclasses - standardize the set of accessors in QPointerEvent - maintain source compatibility as much as possible: do not require modifying event-handling code in any QWidget subclass To avoid public setters we now introduce a few QMutable* subclasses. This is a bit like the Builder pattern except that it doesn't involve constructing a separate disposable object: the main event type can be cast to the mutable type at any time to enable modifications, iff the code is linked with gui-private. Therefore event classes can have less-"complete" constructors, because internal Qt code can use setters the same way it could use the ones in QTouchEvent before; and the event classes don't need many friends. Even some read-accessors can be kept private unless we are sure we want to expose them. Task-number: QTBUG-46266 Fixes: QTBUG-72173 Change-Id: I740e4e40165b7bc41223d38b200bbc2b403e07b6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move qglxconvenience to QtOpenGLFriedemann Kleint2020-07-088-601/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: I7640caf8afbae0a7310a264f333bb3a6cfa3c6ed Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add ; to Q_UNUSEDLars Schmertmann2020-07-073-6/+6
| | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: I3f0b6717956ca8fa486bed9817b89dfa19f5e0e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Use qsizetype in QListLars Knoll2020-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | The change creates a slight source incompatibility. The main things to take care of are * code using printf statements on list.size(). Using qsizetype in printf statements will always require a cast to work on both 32 and 64 bit. * A few places where overloads now get ambiguous. One example is QRandomGenerator::bounded() that has overloads for int, uint and double, but not int64. * Streaming list.size() to a QDataStream will change the format depending on the architecture. [ChangeLog][QtCore][QList] QList now uses qsizetype to index into elements. Change-Id: Iaff562a4d072b97f458417b670f95971bd47cbc6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use QList instead of QVector in platformsupportJarek Kobus2020-07-0610-28/+28
| | | | | | Task-number: QTBUG-84469 Change-Id: I8e4e6626cc840bc9c8bce014c595da9080025dd8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move linuxaccessibility to QtGuiFriedemann Kleint2020-07-0624-4861/+0
| | | | | | | | Change some too-generic file names. Task-number: QTBUG-83255 Change-Id: I4497ee2508bc323566f4061d4547707b7bda7a77 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move xkbcommon to QtGuiFriedemann Kleint2020-07-0410-1254/+3
| | | | | | | Task-number: QTBUG-83255 Change-Id: Ia1c6a49af6be4aaa6b988537c38db3a2c0a646a5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Re-run pro2cmake on gui, platformheadersTor Arne Vestbø2020-07-032-2/+1
| | | | | | | platformsupport and plugins/platforms Change-Id: Id123bc4165387aa867bf4b61ffc3e9dabc2d4780 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Only use one macro per lineLars Schmertmann2020-07-031-3/+7
| | | | | | | | | Also add a ; where it is missing. Task-number: QTBUG-82978 Change-Id: Ic5d2a07363c25ab641d234baca89bc62238458cb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Introduce platform API abstraction for QOpenGLContextTor Arne Vestbø2020-07-024-43/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The API is available by including qopenglcontext.h as usual, but scoped in the QPlatformInterface namespace. The namespace exposes platform specific type-safe interfaces that provide: a) Factory functions for adopting native contexts, e.g. QCocoaGLContext::fromNative(nsContext, shareContext); b) Access to underlying native handles, e.g. openGLContext->platformInterface<QCocoaGLContext>->nativeContext() c) Platform specific functionality, e.g. static QWGLContext::openGLModuleHandle() openGLContext->platformInterface<QEGLContext>->doSomething(); The platform interfaces live close to the classes they extend, removing the need for complex indirection and plumbing, and avoids kitchen-sink modules and APIs such as the extras modules, QPlatformFunctions, or QPlatformNativeInterface. In the case of QOpenGLContext these platform APIs are backed by the platform plugin, so dynamic_cast is used to ensure the platform plugin supports the requested interface, but this is and implementation detail. The interface APIs are agnostic to where the implementation lives, while still being available to the user as part of the APIs they extend/augment. The documentation will be restored when the dust settles. Task-number: QTBUG-80233 Change-Id: Iac612403383991c4b24064332542a6e4bcbb3293 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move the EDID parser into QtGuiFriedemann Kleint2020-07-018-2598/+0
| | | | | | | | | As a drive by, fix recursive inclusion in qxcbscreen.h. Task-number: QTBUG-83255 Change-Id: Ia008921b559ef450c07aa17ca554c6b35e0a88bd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move UNIX themes into QtGuiFriedemann Kleint2020-06-2230-4597/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: I9e3aecd8e172b60121f472c840eaf2a5538af438 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Move UNIX services into QtGuiFriedemann Kleint2020-06-188-505/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: I95cd25c6e18ffb46955acc76d6cab551d1c8f5ae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Introduce QInputDevice hierarchy; replace QTouchDeviceShawn Rutledge2020-06-166-44/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have seen during the Qt 5 series that QMouseEvent::source() does not provide enough information: if it is synthesized, it could have come from any device for which mouse events are synthesized, not only from a touchscreen. By providing in every QInputEvent as complete information about the actual source device as possible, we will enable very fine-tuned behavior in the object that handles each event. Further, we would like to support multiple keyboards, pointing devices, and named groups of devices that are known as "seats" in Wayland. In Qt 5, QPA plugins registered each touchscreen as it was discovered. Now we extend this pattern to all input devices. This new requirement can be implemented gradually; for now, if a QTWSI input event is received wtihout a device pointer, a default "core" device will be created on-the-fly, and a warning emitted. In Qt 5, QTouchEvent::TouchPoint::id() was forced to be unique even when multiple devices were in use simultaneously. Now that each event identifies the device it came from, this hack is no longer needed. A stub of the new QPointerEvent is added; it will be developed further in subsequent patches. [ChangeLog][QtGui][QInputEvent] Every QInputEvent now carries a pointer to an instance of QInputDevice, or the subclass QPointingDevice in case of mouse, touch and tablet events. Each platform plugin is expected to create the device instances, register them, and provide valid pointers with all input events. If this is not done, warnings are emitted and default devices are created as necessary. When the device has accurate information, it provides the opportunity to fine-tune behavior depending on device type and capabilities: for example if a QMouseEvent is synthesized from a touchscreen, the recipient can see which touchscreen it came from. Each device also has a seatName to distinguish users on multi-user windowing systems. Touchpoint IDs are no longer unique on their own, but the combination of ID and device is. Fixes: QTBUG-46412 Fixes: QTBUG-72167 Task-number: QTBUG-69433 Task-number: QTBUG-52430 Change-Id: I933fb2b86182efa722037b7a33e404c5daf5292a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Move Unix font databases into QtGuiFriedemann Kleint2020-06-1514-1474/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: Id85a1e0f3de371951783fe97485158c4a02e1f15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Port platformsupport to QStringViewLars Knoll2020-06-158-13/+13
| | | | | | Task-number: QTBUG-84319 Change-Id: I8032382904bc8481fe0a147ca38f3de9cfb1890f Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Move windows font databases into QtGuiFriedemann Kleint2020-06-1118-6602/+0
| | | | | | | | | | Requires adapting a few config checks since cmake currently does not detect directwrite. Task-number: QTBUG-83255 Task-number: QTBUG-83931 Change-Id: I521f1924f701260b41dccbcecf87b19f08df5ccc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move the UNIX event dispatchers into QtGuiFriedemann Kleint2020-06-1012-595/+3
| | | | | | Task-number: QTBUG-83255 Change-Id: I7d32eb1ec01784c9ed6bf5fc4913ffc5b3a34a49 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move the Windows Event Dispatcher into QtGuiFriedemann Kleint2020-06-095-321/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: Ida86f27d7f52b9be48fbea909979320866ff8dae Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Replace calls to deprecated QEvent accessor functionsShawn Rutledge2020-06-081-1/+1
| | | | | | | Many of these were generated by clazy using the new qevent-accessors check. Change-Id: Ie17af17f50fdc9f47d7859d267c14568cc350fd0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove deprecated text-related enumsEskil Abrahamsen Blomfeldt2020-06-081-44/+5
| | | | | | | | Fixes: QTBUG-82367 Change-Id: Iff2645759657f8e350754e90e791dbd583017671 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QWindowsFontDatabase: replace a QPair with a dedicated structMarc Mutz2020-06-073-5/+20
| | | | | | | | | | | | | Pairs are easy to use, but they have no semantics attached: Two QPair<QString, QString> compare equal, e.g., even though one is used as a FontAndStyle and the other as, say, a type/subtype. It also carries no information for the reader of the code. So, write a minimal struct with equality and qHash() instead. Change-Id: I9514c9b7d6c2cc6a4831f9ca83ca2ee466d91553 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove winrtOliver Wolff2020-06-066-655/+17
| | | | | | | | | Macros and the await helper function from qfunctions_winrt(_p).h are needed in other Qt modules which use UWP APIs on desktop windows. Task-number: QTBUG-84434 Change-Id: Ice09c11436ad151c17bdccd2c7defadd08c13925 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move QAbstractFileIconEngine into QtGuiTor Arne Vestbø2020-06-036-236/+7
| | | | | | Task-number: QTBUG-83255 Change-Id: Iab502c51600b96f315113b08fa473ed28a5457fc Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Windows: Fix QPainter warnings when using some fontsEskil Abrahamsen Blomfeldt2020-06-031-0/+3
| | | | | | | | | | | | | | | | | | | Some fonts, like Segoe UI, have empty glyphs defined for characters such as space. When there is a margin on the glyphs, we would previously render them as 4x4 completely transparent images. This is a waste of time, and in the case of DirectWrite, we fixed it in bb67c3b68b00fb2075a971f4f0d58e1867ef7128 so that it will always return an invalid image when the glyph does not have dimensions. But since we did not account for this in alphaMapBoundingBox(), the texture glyph cache did not detect this case and would request the empty image and try to add it to the cache. Fixes: QTBUG-84629 Pick-to: 5.15 Change-Id: I470a4a55577c5e9239bf77de81c2b381bf8e6a49 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Move QtAccessibilitySupport into QtGuiTor Arne Vestbø2020-06-029-226/+2
| | | | | | Task-number: QTBUG-83255 Change-Id: Ibc1b38e77c3c90030a832c41f4de65c6c38bc91d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* MetaObject: Store the QMetaType of the methodsFabian Kosmale2020-06-023-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | This does the analog of 46f407126ef3e94d59254012cdc34d6a4ad2faf2 for the methods we care about (signals, slots, Q_INVOKABLEs). In addition to the actual QMetaType, we store an array with offsets so that we later can do a mapping from methodIndex to metatype. The newly added QMetaMethod::{return,parameter}MetaType methods can then be used to retrieve the metatypes. This does however require that all involved types are complete. This is unfortunately not a feasible requirement. Thus, we only populate the metatype array on a best effort basis. For any incomplete type, we store QMetaType::Unknown. Then, when accessing the metatype, we fall back to the old string based code base if it's Unknown. Squashes "moc: support incomplete types" and "Fix compile failures after QMetaMethod change" Fixes: QTBUG-82932 Change-Id: I6b7a587cc364b7cad0c158d6de54e8a204289ad4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Regenerate src/platformsupportAlexandru Croitor2020-05-296-52/+58
| | | | | Change-Id: If7b5359c457edee814dc7d3a71cf47ce052e6c5e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move QtPlatformCompositorSupport into QtOpenGLTor Arne Vestbø2020-05-2810-1410/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: Id9ea654db8efb00b487d53aea03d7f23a7ab1a54 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Move windowsuiautomation API support into QtGuiFriedemann Kleint2020-05-2716-1862/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: Ibface71931b6384494842ba9744d76f738c5ca85 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move CoreText font engine/database to QtGuiTor Arne Vestbø2020-05-278-2178/+1
| | | | | | Task-number: QTBUG-83255 Change-Id: Id34ed1759fdebbb1d09e51009f0370736002167c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move FreeType font engine/database to QtGuiTor Arne Vestbø2020-05-2718-2817/+14
| | | | | | Task-number: QTBUG-83255 Change-Id: If6be7057d6bd25b34acd99e18658744161985ed0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix various offset issues with DirectWrite font engineEskil Abrahamsen Blomfeldt2020-05-271-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 318a991907b6c08f52786160bafea1e30d3ad9bd and its follow-up commit beede51bca1a43befe42499ad784af57d2450162. This fix was incorrect and caused regressions elsewhere (QTBUG-84357) The issue in QTBUG-71928 (offsets on emojis) turned out to be much simpler: The emojis are expected to be drawn without any margin, but since we retrieved the margin for A32 there would be a mismatch between the margin used for positioning and the actual margin in the returned QImage from the font engine. Passing the correct margin in bitmapForGlyph() fixes this. But reverting these fixes reintroduces a clipping bug when using software rendering in Qt Quick: QTBUG-80180. This needs to be addressed in Qt Quick. It also exposes an existing issue with positioning in Qt Quick NativeRendering: QTBUG-84454. In addition, it caused an assert when running with ClearType disabled, which turned out to be because we were using the A32 margin in the A8 case in the DirectWrite engine. This was also the cause of QTBUG-50024 before, which is now also fixed. However, it also needs to work with Qt Quick, where the text is currently offset by margin * dpr and glyphs are clipped with the software renderer, possibly because of the offset in position. Task-number: QTBUG-71928 Task-number: QTBUG-84042 Task-number: QTBUG-80180 Task-number: QTBUG-84454 Fixes: QTBUG-84357 Fixes: QTBUG-50024 Pick-to: 5.15 Change-Id: I2c8f9f9e7dfb34d492e9833a02fa0c93e6a19513 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Windows: Fix wrong DPI used in font size after changing scalingFriedemann Kleint2020-05-252-11/+10
| | | | | | | | | | | | | | | | | QWindowsFontDatabase::defaultVerticalDPI(), which was used for converting the point sizes was missing an updating logic for scaling changes. When implementing it, it turned out that the value obtained from GetDC(0) does not adapt to scaling changes. Remove the function and set it from the screen manager directly to the DPI of the primary screen. Pick-to: 5.15 Task-number: QTBUG-82267 Change-Id: If05ebc893fe78a9461500aba97f2dc127cdf4406 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Move QtVulkanSupport into QtGui and QtOpenGLTor Arne Vestbø2020-05-229-899/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: Ib021cecebda89fa2ab9332752124a8cec0a51a10 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Move QRasterBackingStore to QtGuiTor Arne Vestbø2020-05-216-240/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: I339173de6e109c5a9b9572972ba894c15053c034 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move QMacInternalPasteboardMime to QtGuiTor Arne Vestbø2020-05-216-1186/+0
| | | | | | Task-number: QTBUG-83255 Change-Id: I00fda24479ad2c04781c5fefaa15fac1118033a8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add missing overrideAlexander Volkov2020-05-214-7/+7
| | | | | | Change-Id: I88000e82ecbdc55e621dc8e22aff5e8f55cf9d0e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* cmake: add config module name for devicediscoverySamuli Piippo2020-05-191-0/+1
| | | | | | | Add special case for using correct module name. Change-Id: Icfd88eccfa8adf55a69091d86a01bd1658fe2b54 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Direct Write Font Engine: Fix leaking IDWriteFontFace instancesFriedemann Kleint2020-05-191-2/+3
| | | | | | | | | | Patch as contributed on bug report. Pick-to: 5.15 Pick-to: 5.12 Fixes: QTBUG-84265 Change-Id: I73d73cf7d1b46944767750bf0f0c727c7b00b1d7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Get rid of some QTextCodec leftoversLars Knoll2020-05-141-1/+0
| | | | | | | There's no real dependency to QTextCodec in those files anymore. Change-Id: Ifaf19ab554fd108fa26095db4e2bd4a3e9ea427f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QTextCodec dependency from qmacmime.mmLars Knoll2020-05-141-10/+7
| | | | | | Change-Id: I99f95d026683299c5d437b52803cb5a3a0ad0263 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* evdevkeyboard: fix input_event time related compilePeter Seiderer2020-05-071-1/+12
| | | | | | | | | | | | | | | Fixes: evdevkeyboard/qevdevkeyboardhandler.cpp: In member function ‘void QEvdevKeyboardHandler::switchLed(int, bool)’: evdevkeyboard/qevdevkeyboardhandler.cpp:153:28: error: ‘struct input_event’ has no member named ‘time’; did you mean ‘type’? ::gettimeofday(&led_ie.time, 0); ^~~~ type Task-number: QTBUG-84012 Change-Id: I1d127561e0406ae570da656d3e31f9434c7b8798 Pick-to: 5.15 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* evdevtouch: fix input_event time related compilePeter Seiderer2020-05-071-1/+9
| | | | | | | | | | | | | | | | | | | Fixes: evdevtouch/qevdevtouchhandler.cpp: In member function ‘void QEvdevTouchScreenData::processInputEvent(input_event*)’: evdevtouch/qevdevtouchhandler.cpp:579:29: error: ‘struct input_event’ has no member named ‘time’; did you mean ‘type’? m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0; ^~~~ type evdevtouch/qevdevtouchhandler.cpp:579:49: error: ‘struct input_event’ has no member named ‘time’; did you mean ‘type’? m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0; ^~~~ type Task-number: QTBUG-84012 Change-Id: Ib8d726a0baf2bdc85da9341229fffaddc0e373ee Pick-to: 5.15 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix Mesa warning that MESA_EGL_NO_X11_HEADERS is deprecatedThiago Macieira2020-05-051-0/+3
| | | | | | | | | The warning isn't printed when EGL_NO_X11 (the new macro) is defined. Fixes: QTBUG-80042 Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160b5d99f94c8c9b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix font height metrics with embedded bitmapsEskil Abrahamsen Blomfeldt2020-05-048-38/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | For fonts with embedded bitmaps, we cannot trust the HHEA and OS/2 tables, since there are a different set of font metrics in the EBLC/CBLC tables for each of the predefined bitmap sizes. In this case, we can safely fall back to the metrics returned by the system, as the inconsistency we were originally fixing was only between OS/2 and HHEA and will not matter for the bitmap fonts. This patch also simplifies the code path through the font engines a bit. Instead of setting the system metrics in the processHheaTable() function when the table cannot be found, we instead always fetch the system metrics at the very start of initializeHeightMetrics() and then override if there are no embedded bitmaps, and if the HHEA and OS/2 tables are available. This also reduces the number of virtual functions needed to sort out the height metrics. Fixes: QTBUG-83754 Change-Id: Ib9dc6fc6cf972e48209a4a272469d2b4bd1ebffe Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix URL opening in snap sandboxIlya Fedin2020-05-011-1/+1
| | | | | | | | For some reason, snapd doesn't allow dbus activating of xdg-desktop-portal and returns AccessDenied to any request. Qt checks the returned error and if it is not ServiceUnknown, Qt doesn't try to open URL through xdg-open, which encounters into situation that URLs doesn't open until some other app tries to access xdg-desktop-portal. Fixes: QTBUG-83837 Change-Id: I9e600f734401bd4295d97e2b5686b916c6c7f762 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>