summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-16 15:21:40 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-19 03:16:48 +0000
commit19f9b0d5f54379151eb71e98555b203ad6756276 (patch)
tree226f5dc2b77292146a0e42dba6fda6a807df7174 /src/plugins/platforms/ios
parentc149fd232daa4c62b0c39d603fe660104ceb92b5 (diff)
Disable copying and assigning of QEvent
Polymorphic classes should not be copied. However, we do rely on event copying in our propagation logic. So, make the members protected, don't delete them, using a dedicated macro. This way, QMutable*Event classes can be used to make copies. Remove some last usage of copying of QInputMethod(Query)Events. Change-Id: Ia0a8ae4ca9de97dcd7788ca3c6ed930b6460c43a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm
index 19e476a064..358ccbf602 100644
--- a/src/plugins/platforms/ios/qiostextresponder.mm
+++ b/src/plugins/platforms/ios/qiostextresponder.mm
@@ -178,7 +178,7 @@
m_inSelectionChange = NO;
m_inputContext = inputContext;
- m_configuredImeState = new QInputMethodQueryEvent(m_inputContext->imeState().currentState);
+ m_configuredImeState = static_cast<QInputMethodQueryEvent*>(m_inputContext->imeState().currentState.clone());
QVariantMap platformData = m_configuredImeState->value(Qt::ImPlatformData).toMap();
Qt::InputMethodHints hints = Qt::InputMethodHints(m_configuredImeState->value(Qt::ImHints).toUInt());
@@ -828,20 +828,24 @@
NSRange r = static_cast<QUITextRange*>(range).range;
QList<QInputMethodEvent::Attribute> attrs;
attrs << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, r.location, 0, 0);
- QInputMethodEvent e(m_markedText, attrs);
- [self sendEventToFocusObject:e];
+ {
+ QInputMethodEvent e(m_markedText, attrs);
+ [self sendEventToFocusObject:e];
+ }
QRectF startRect = qApp->inputMethod()->cursorRectangle();
attrs = QList<QInputMethodEvent::Attribute>();
attrs << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, r.location + r.length, 0, 0);
- e = QInputMethodEvent(m_markedText, attrs);
- [self sendEventToFocusObject:e];
+ {
+ QInputMethodEvent e(m_markedText, attrs);
+ [self sendEventToFocusObject:e];
+ }
QRectF endRect = qApp->inputMethod()->cursorRectangle();
if (cursorPos != int(r.location + r.length) || cursorPos != anchorPos) {
attrs = QList<QInputMethodEvent::Attribute>();
attrs << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, qMin(cursorPos, anchorPos), qAbs(cursorPos - anchorPos), 0);
- e = QInputMethodEvent(m_markedText, attrs);
+ QInputMethodEvent e(m_markedText, attrs);
[self sendEventToFocusObject:e];
}