diff --git a/src/gui/kernel/qinputdevice.h b/src/gui/kernel/qinputdevice.h index 2b7ce32d862..b7c0eb3b6f6 100644 --- a/src/gui/kernel/qinputdevice.h +++ b/src/gui/kernel/qinputdevice.h @@ -19,7 +19,7 @@ class Q_GUI_EXPORT QInputDevice : public QObject Q_DECLARE_PRIVATE(QInputDevice) Q_PROPERTY(QString name READ name CONSTANT) Q_PROPERTY(DeviceType type READ type CONSTANT) - Q_PROPERTY(Capabilities capabilities READ capabilities CONSTANT) + Q_PROPERTY(Capabilities capabilities READ capabilities) Q_PROPERTY(qint64 systemId READ systemId CONSTANT) Q_PROPERTY(QString seatName READ seatName CONSTANT) Q_PROPERTY(QRect availableVirtualGeometry READ availableVirtualGeometry diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm index 76173ce830a..69b79b111b3 100644 --- a/src/plugins/platforms/ios/qiosintegration.mm +++ b/src/plugins/platforms/ios/qiosintegration.mm @@ -94,14 +94,13 @@ void QIOSIntegration::initialize() // Depends on a primary screen being present m_inputContext = new QIOSInputContext; - m_touchDevice = new QPointingDevice; - m_touchDevice->setType(QInputDevice::DeviceType::TouchScreen); QPointingDevice::Capabilities touchCapabilities = QPointingDevice::Capability::Position | QPointingDevice::Capability::NormalizedPosition; #if !defined(Q_OS_VISIONOS) if (mainScreen.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) touchCapabilities |= QPointingDevice::Capability::Pressure; #endif - m_touchDevice->setCapabilities(touchCapabilities); + m_touchDevice = new QPointingDevice("touchscreen", 0, QInputDevice::DeviceType::TouchScreen, + QPointingDevice::PointerType::Finger, touchCapabilities, 10, 0); QWindowSystemInterface::registerInputDevice(m_touchDevice); #if QT_CONFIG(tabletevent) QWindowSystemInterfacePrivate::TabletEvent::setPlatformSynthesizesMouse(false); diff --git a/src/plugins/platforms/ios/quiview.mm b/src/plugins/platforms/ios/quiview.mm index 7796e93c16d..fb9cfdbe7f5 100644 --- a/src/plugins/platforms/ios/quiview.mm +++ b/src/plugins/platforms/ios/quiview.mm @@ -20,6 +20,7 @@ #include #include #include +#include #include Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet") @@ -346,12 +347,10 @@ inline ulong getTimeStamp(UIEvent *event) [super traitCollectionDidChange: previousTraitCollection]; QPointingDevice *touchDevice = QIOSIntegration::instance()->touchDevice(); - QPointingDevice::Capabilities touchCapabilities = touchDevice->capabilities(); + auto *devicePriv = QPointingDevicePrivate::get(touchDevice); - touchCapabilities.setFlag(QPointingDevice::Capability::Pressure, - (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)); - - touchDevice->setCapabilities(touchCapabilities); + devicePriv->capabilities.setFlag(QPointingDevice::Capability::Pressure, + (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable)); } -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event