summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
Commit message (Collapse)AuthorAgeFilesLines
* Make QtPlatformHeaders a private moduleTor Arne Vestbø2020-07-0626-15/+32
| | | | | | | | | | | The APIs will be reintroduced as part of the new platform interface API where appropriate. Clients that still depend on the platform headers can include it via QT += platformheaders-private. Change-Id: Ifbd836d833d19f3cf48cd4f933d7fe754c06d2d9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove unnecessary ; after function implementationsLars Schmertmann2020-07-065-14/+14
| | | | | | Task-number: QTBUG-82978 Change-Id: Iea3bcaec1ef9f4bd0f73e5dccca33354650f5bf4 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Move linuxaccessibility to QtGuiFriedemann Kleint2020-07-064-18/+5
| | | | | | | | 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-044-5/+2
| | | | | | | 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>
* Avoid use of Q_UNUSED by eliminating the parameter namesLars Schmertmann2020-07-033-5/+5
| | | | | | | | | This change only happens to files touched by the commit to add missing ; to Q_UNUSED. Task-number: QTBUG-82978 Change-Id: I10e6993a2bb3952cf9a262708b8573550e0dbe63 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* CMake: Re-run pro2cmake on gui, platformheadersTor Arne Vestbø2020-07-032-43/+7
| | | | | | | platformsupport and plugins/platforms Change-Id: Id123bc4165387aa867bf4b61ffc3e9dabc2d4780 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* macOS: Fix mapping of Qt to Carbon modifiers with AA_MacDontSwapCtrlAndMetaTor Arne Vestbø2020-07-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | The macOS platform plugin function toCarbonModifiers is based on a mapping table with already swapped modifiers, where Qt::MetaModifier maps to controlKey. We were using the Carbon fooKeyBit constants instead of the fooKey constants, so the logic for mapping from Qt to Carbon modifiers when AA_MacDontSwapCtrlAndMeta was set to true would fail to reverse the swap from the mapping table. Since the command and control modifiers rarely produce different unicode characters from the base keyboard layout, at least not in the tested key layouts, and the AA_MacDontSwapCtrlAndMeta is not commonly used, this bug was not that visible. The logic maintains the behavior of mapping a single Qt modifier to multiple Carbon modifiers (both left and right command e.g.). This is a bit weird, but existing behavior that should be looked at in a followup. Change-Id: I8b30854770d1230a47f5144bf3245d0ac1493b51 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Only use one macro per lineLars Schmertmann2020-07-031-1/+3
| | | | | | | | | 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>
* Windows QPA: Refactor touch device creationFriedemann Kleint2020-07-035-60/+43
| | | | | | | | | | | | | | | | | | | | | There was duplicated code in QWindowsMouseHandler::ensureTouchDevice() and QWindowsPointerHandler::ensureTouchDevice() which caused deprecation warnings since the setters of QInputDevice were deprecated. Join the 2 functions into a single creation function and add simple getters and setters. Fix deprecation warnings: qwindowscontext.cpp:357:108: warning: 'void QPointingDevice::setCapabilities(QInputDevice::Capabilities)' is deprecated: Use the constructor qwindowsmousehandler.cpp:132:97: warning: 'void QPointingDevice::setType(QInputDevice::DeviceType)' is deprecated: Use the constructor qwindowsmousehandler.cpp:136:41: warning: 'void QPointingDevice::setCapabilities(QInputDevice::Capabilities)' is deprecated: Use the constructor qwindowsmousehandler.cpp:137:49: warning: 'void QPointingDevice::setMaximumTouchPoints(int)' is deprecated: Use the constructor Change-Id: Iab5385e84d600e45b60f38225175f25ef043c3eb Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix no-OpenGL build after introducing QOpenGLContext platform interfaceTor Arne Vestbø2020-07-034-3/+12
| | | | | | Change-Id: I355f43c200adb3a12e71e0b02aa10060672bb9e4 Reviewed-by: Nodir Temirkhodjaev <nodir.temir@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* macOS: Simplify QCocoaKeyMapper::(to/from)CocoaKeyTor Arne Vestbø2020-07-021-67/+19
| | | | | Change-Id: I8daf735e9b49b24b8144b2aab8966b6313dfa3fa Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Move key mapping from QtCore to platform pluginTor Arne Vestbø2020-07-025-8/+148
| | | | | | | | | | | There's a bunch of similar and overlapping logic in QCocoaKeyMapper already. Moving it to the same place allows us to easier find ways to reduce the overlap. None of the exported functions were used outside of the plugin. Change-Id: I6953690cdfda5ee8265b33ccbf919184c3a1700f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Move Cocoa modifier mapping logic to QCocoaKeyMapperTor Arne Vestbø2020-07-029-37/+32
| | | | | | | Along with similar logic for Carbon. Change-Id: Ie32f8ffa336006387d50d3b9e8491816aba4ea04 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Introduce platform API abstraction for QOpenGLContextTor Arne Vestbø2020-07-0230-263/+232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* In-class initialize QWindowsGLContext membersTor Arne Vestbø2020-07-012-16/+9
| | | | | Change-Id: Icd84e96706d5779656d7311755596110494eacd8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove explicit tracking of QOpenGLContext in QWindowsGLContextTor Arne Vestbø2020-07-012-3/+1
| | | | | | | | QPlatformOpenGLContext takes care of that via QPlatformOpenGLContextPrivate, which is set up in QOpenGLContext::create(). Change-Id: I1088c2e18efe6023c8e76f126d967a607746e980 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Let QScreen::grabWindow's winId parameter default to 0 and add testVolker Hilsheimer2020-07-012-43/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | The platform plugins are implemented to grab the entire screen if no window ID is provided. They do not grab the entire virtual screen, just the screen the method is called on. On macOS, the implementation ignored the window parameter, and always grabbed the entire virtual screen. This change fixes the cocoa implementation. The test passes in local tests (with two displays with different dpr). Since grabbing a screen returns an image with managed colors, we need to convert it to sRGB color spec first, otherwise displaying a grabbed image will produce different results. This will need to be changed once Qt supports a fully color managed flow. The test does not cover the case where a window spans multiple displays, since this is generally not supported at least on macOS. The code that exists in QCocoaScreen to handle that case is untested, but with the exception of the optimization it is also unchanged. Done-with: Morten Sørvig <morten.sorvig@qt.io> Change-Id: I8ac1233e56d559230ff9e10111abfb6227431e8c Fixes: QTBUG-84876 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move the EDID parser into QtGuiFriedemann Kleint2020-07-0112-13/+6
| | | | | | | | | 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>
* xcb: increase XCOORD_MAX to 32767Liang Qi2020-06-301-1/+1
| | | | | | | | | | Align with int16_t in xcb_create_window() and xcb_get_geometry_reply_t. Fixes: QTBUG-85275 Pick-to: 5.15 Change-Id: Ibbc0fab6b3d725a96ac4545857a4f04b026c4175 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* glx: Pull out screen numnber from GLXFBConfig instead of QXcbScreenTor Arne Vestbø2020-06-301-1/+7
| | | | | Change-Id: I6b87bb1c3c501613bc147c5f88e0f2d2222b0a50 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* glx: Remove assumption about supporting multiple displaysTor Arne Vestbø2020-06-301-17/+12
| | | | | | | | | We only support one display (X server connection), so there's no reason to have the user pass in the display. We can always use the one we know from the QXCbScreen (which also matches the QXcbIntegration connection). Change-Id: Ifc43dac4c74ba16490d3dee25fc3d43ee053a7d5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Pass correct modifier to QCocoaKeyMapper::toKeyCode()Tor Arne Vestbø2020-06-301-1/+1
| | | | | | | | | | | | | The modifierKeyState variable is based on the Carbon modifiers, and then further mangled to match the expected format of UCKeyTranslate. But inside QCocoaKeyMapper::toKeyCode() we compare the modifiers to Qt::KeyboardModifiers. To ensure the logic works as expected we need to pass in the Qt modifiers. This fixes shortcut sequences based on "Backtab". Change-Id: I089fe601f0fe7a92f746e0a6447e2de0d974d0b2 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Simplify QCocoaKeyMapper by always returning a valid keymapTor Arne Vestbø2020-06-302-17/+16
| | | | | | | | | | | | | QCocoaKeyMapper::updateKeyMap would always end up creating a valid key map, so the logic in CocoaKeyMapper::possibleKeys for dealing with missing keymaps was not needed, and was likely copied from one of the other key map implementations. Since we know that we have a key map we might as well return it after possibly updating it. Change-Id: If83974f4ddedae8b1acefbadef48da3ee326eadd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* macOS: Modernize QCocoaKeyMapperTor Arne Vestbø2020-06-302-316/+284
| | | | | | | | | | | | | | | Paying off technical debt from Qt 4 times, and preparation for removing Carbon dependency. - Proper variable names (m_ prefix, titleCase, fullyWrittenOut) - Modern data structures for lookups - Removal of dead code/variables - Categorized logging - Built in constants instead of magic numbers - Typed variables instead of naked integers Change-Id: Ie14621e0da8ed61e2185fa05373047204dc4ea62 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix UITouch event handling on tvOSMike Krus2020-06-291-9/+23
| | | | | | | | | | | | | | | | | | | | | On tvOS touchesEnded: occasionally gets called with touches that have not been passed via the touchesBegan:. When this happens previously cached touch event (that HAVE been passed to touchesBegan:) are no longer valid. This causes a crash when testing if new touches contain old ones (since NSSet dereferences the needle which is no longer valid). Fix uses the unique (unsigned int) hash that UIKIT assigns to the UITouch instance so cached copies are never accessed. Furthermore, tvOS only supports single touch so now just clearing cache when touch has ended. Task-number: QTBUG-84383 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I7592cdde74ce834285e7b14196171f6b57736cc8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* wasm: fix handling on int dead keys on macLorn Potter2020-06-291-12/+15
| | | | | | | | | Q_OS_MAC is not defined when building wasm on mac, so we need to use a runtime check. Pick-to: 5.15 Change-Id: I1e9c5ec4e11aae94c9d8e918b5f1f1526723c782 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* wasm: search emscripten key firstLorn Potter2020-06-291-8/+9
| | | | | | | | | This fixes key lookups with different keyboard layouts Pick-to: 5.15 Fixes: QTBUG-84494 Change-Id: I18f1643331961d9bfc1ac6977181f8959e76449d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* macOS: Clean up modal sessions after each pass of processEvents()Richard Moe Gustavsen2020-06-271-0/+5
| | | | | | | | | | | The Qt macOS event dispatcher defers modal session cleanup until the next runloop pass. But as it stood, we never did do so for stand-alone qApp->processEvents() calls. The result was that a NSModalSession would be kept alive longer than necessary, which would impact the activation state of other QWindows. Change-Id: I054f3084132c9d20a29a3f5823c19b7123ef40bf Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: Close popups on mouse down using synchronous QPA deliveryTor Arne Vestbø2020-06-261-2/+1
| | | | | Change-Id: I5ccb5ca4f9b9f7a480c575c5a2710ec20361cf88 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* macOS: Check that platform window is valid after delivering close eventTor Arne Vestbø2020-06-261-0/+2
| | | | | | | | Fixes: QTBUG-78814 Pick-to: 5.15 Change-Id: I551024c5d777999f7c79d21fd7b7de061c18f971 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* CMake: Fix qmake mixing with static build and system_xcb_inputJoerg Bornemann2020-06-251-2/+3
| | | | | | | | | | | The .prl generation uses a very simple generator expression evaluator that cannot cope with the $<TARGET_EXISTS> expression used in src/plugins/platforms/xcb/CMakeLists.txt. Replace this genex with a conditional qt_extend_target call. Change-Id: Id17a230d66f701eb0938d10d6b6b7b680290b1c8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix compile warnings when passing short ints into printf formattingVolker Hilsheimer2020-06-251-2/+2
| | | | | | | Use %hd instead of %d. Change-Id: I0062a507140d70263770cd7fe923efe94822d00e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Enable access to the VAO resolvers through QOpenGLContextPrivateGiuseppe D'Angelo2020-06-221-2/+1
| | | | | | | | | | | | | | | | | | | This is a commit in preparation for an upcoming change in QtQuick. We want to store the resolved functions for managing VAOs somewhere; the "least worst" choice is next to the all other function resolvers, which are in QOpenGLContext(Private). To avoid moving the VAO resolvers themselves, leave a hook in QOGLCPrivate, similar to e.g. the texture function resolvers. The hook gets populated when the VAO resolvers for a given context are requested. This removes memory management burden from the users of those functions (again, just like other function resolvers), and makes the initialization of the functions automatic. Change-Id: I0eba30a85bf8ad82946a5d68e91009d8b4bd91cf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Move UNIX themes into QtGuiFriedemann Kleint2020-06-227-7/+1
| | | | | | Task-number: QTBUG-83255 Change-Id: I9e3aecd8e172b60121f472c840eaf2a5538af438 Reviewed-by: Liang Qi <liang.qi@qt.io>
* xcb: Remove need for QXCBScreen to resolve QXcbGlIntegrationTor Arne Vestbø2020-06-211-2/+1
| | | | | Change-Id: I9de4f47bfdf88c92959f210e05c1fc1e8a459cde Reviewed-by: Liang Qi <liang.qi@qt.io>
* xcb: remove multi-connection code pathGatis Paeglis2020-06-215-64/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was introduced in 2011 as an experimental feature and have been untested/unmaintained ever since. It's time to remove it for the following reasons: - It has never been documented in QGuiApplication under "Supported Command Line Options". The intended command line was: ./app -platform xcb:address:display - I am not aware of other toolkits that would provide this functionality - connecting to several X displays simultaneously. - XCB plugin respects the "-display" command line and DISPLAY envvar which should be sufficient. So the "workaround" to get your window on 2 X displays is: ./app -display :0 ./app -display :1 - There are no JIRA bugs where users would complain that this feature does not work. AFAICT it has not worked for years. Almost all functions care only about the "default" connection, and don't attempt to support multi-connection. - This will stop confusing people who want to contribute to the XCB plugin. [ChangeLog][Platform Specific Changes][X11] Connecting to multiple X servers simultaneously within the same application is no longer supported. Task-number: QTBUG-52408 Change-Id: I61ce23480702bb89b02c6028fa0986fe63481978 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: Fix android accessibility not being set activeVikke Matikainen2020-06-213-1/+17
| | | | | | | | | | | | | | Android platform event of activating accessibility might be received, before the platform plugin is initialized, thus disregarding the activation step. This change saves the activation event state and defers setting it in platform integration. Fixes: QTBUG-77320 Pick-to: 5.15 5.12 Change-Id: I06aab76159d1de0e72c0c535dbe80c2858f8e79b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Port Q_STATIC_ASSERT(_X) to static_assertGiuseppe D'Angelo2020-06-192-2/+2
| | | | | | | | | | | | | | | | | There is no reason for keep using our macro now that we have C++17. The macro itself is left in for the moment being, as well as its detection logic, because it's needed for C code (not everything supports C11 yet). A few more cleanups will arrive in the next few patches. Note that this is a mere search/replace; some places were using double braces to work around the presence of commas in a macro, no attempt has been done to fix those. tst_qglobal had just some minor changes to keep testing the macro. Change-Id: I1c1c397d9f3e63db3338842bf350c9069ea57639 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* xcb: fix seatId to be master-keyboard-id << 16 | master-pointer-idShawn Rutledge2020-06-181-1/+1
| | | | | | | | | | | | Amends 6589f2ed0cf78c9b8a5bdffcdc458dc40a974c60 to match the comment. If the master device we found is a keyboard, then its own ID is the keyboard ID, and the attachment is a pointer; but if the master device we found is a pointer, then its attachment is the master keyboard. In practice, this gives all devices the same seatId on normal single-user sessions. Change-Id: Ibe7d7cdee7b3fe642efacd0349c109271059cb36 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Add QPointingDevice argument to every QWSI input event handler functionShawn Rutledge2020-06-181-12/+18
| | | | | | | | | | | | | | | | | | | | | | We want every QInputEvent to carry a valid device pointer. It may be some time until all QPA plugins are sending it, but it's necessary to provide the functions for them to start doing that. We now try to maintain the same order of arguments to all the functions. handleTouchEvent(window, timestamp, device, the rest) was already there (except "device" has changed type now), and is used in a lot of platform plugins; so it seems easiest to let that set the precedent, and modify the rest to match. We do that by adding new functions; we can deprecate the older functions after it becomes clear that the new ones work well. However the handleGestureEvent functions have only ever been used in the cocoa plugin, so it's easy to change their argument order right now. Modify tst_qwindow::tabletEvents() to test new tablet event API. Task-number: QTBUG-46412 Change-Id: I1828b61183cf51f3a08774936156c6a91cfc9a12 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move UNIX services into QtGuiFriedemann Kleint2020-06-1824-25/+11
| | | | | | Task-number: QTBUG-83255 Change-Id: I95cd25c6e18ffb46955acc76d6cab551d1c8f5ae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Android: Only emit the signals once when doing multiple file selectionAndy Shaw2020-06-181-2/+2
| | | | | | Change-Id: Ie57908f5e882ef4f85f4199ecb06c09ae5d8ae2a Pick-to: 5.15 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Introduce QInputDevice hierarchy; replace QTouchDeviceShawn Rutledge2020-06-1627-310/+480
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix build with -no-opengl on WindowsPaul Olav Tvete2020-06-161-0/+2
| | | | | | Change-Id: Ib29012361a2b7f2f0b0da53a7736bb3f3384ae38 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Windows font databases: Enable DirectWrite for cmakeFriedemann Kleint2020-06-157-20/+6
| | | | | | | | | | | | | | | | - Remove the DirectWrite1,2 features. Windows 10 should have them, only MinGW is missing directwrite3. The feature directwrite now implies DirectWrite2. - Remove the custom defines. - Port over the configure tests from configure.json and add missing ones for DirectWrite(2), DirectWrite3 and Direct2D and Direct2D 1.1, fix the conditions and report them in the summary. Task-number: QTBUG-83255 Fixes: QTBUG-83931 Change-Id: I1fc68997adc715bd5c6d7ec457f58c46e1f81c6a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Port platform plugins to QStringViewLars Knoll2020-06-1510-11/+17
| | | | | | Task-number: QTBUG-84319 Change-Id: If409ba1c99f30c7ab32c7cc826c7f303ccf18c1d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move Unix font databases into QtGuiFriedemann Kleint2020-06-1540-65/+25
| | | | | | Task-number: QTBUG-83255 Change-Id: Id85a1e0f3de371951783fe97485158c4a02e1f15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* a11y: Implement accessibilityHelp on macOSJan Arve Sæther2020-06-151-0/+10
| | | | | | | | | Note for manual testing: You can read it manually with vo+shift+h Fixes: QTBUG-84864 Pick-to: 5.15 Change-Id: I5686e40642396db2fde685cf07b758acd29c6ee0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Fix Windows Font database code to use configure featuresFriedemann Kleint2020-06-121-2/+3
| | | | | | | | | Use QT_CONFIG, QT_REQUIRE_CONFIG instead of custom macros. Task-number: QTBUG-83255 Task-number: QTBUG-83931 Change-Id: Id067448dd59f4810a6bc8042d3fbe4244d5cc88a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move windows font databases into QtGuiFriedemann Kleint2020-06-1117-28/+29
| | | | | | | | | | 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>