From 6b212351e239347a9c28cff79d9ee2ef316ac69d Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Thu, 30 Jan 2014 16:39:17 +0100 Subject: iOS: send backspace events directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For legacy reasons, we send IM events to the focus object directly instead of through QPA. To be consistent, and to ensure that IM and key events end up at the same object in the same order, we need to send key events directly to the focus object as well. We should consider fixing up QPA to support IM events better, but this will do for now. Change-Id: I8a18a1f7b7295e5c64a109fb98eee928fae06a0f Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/ios/quiview_textinput.mm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforms/ios/quiview_textinput.mm b/src/plugins/platforms/ios/quiview_textinput.mm index 46c63402a0..0d9113abc1 100644 --- a/src/plugins/platforms/ios/quiview_textinput.mm +++ b/src/plugins/platforms/ios/quiview_textinput.mm @@ -467,11 +467,13 @@ Q_GLOBAL_STATIC(StaticVariables, staticVariables); - (void)deleteBackward { - // Send key event to window system interface - QWindowSystemInterface::handleKeyEvent( - 0, QEvent::KeyPress, (int)Qt::Key_Backspace, Qt::NoModifier); - QWindowSystemInterface::handleKeyEvent( - 0, QEvent::KeyRelease, (int)Qt::Key_Backspace, Qt::NoModifier); + // Since we're posting im events directly to the focus object, we should do the + // same for key events. Otherwise they might end up in a different place or out + // of sync with im events. + QKeyEvent press(QEvent::KeyPress, (int)Qt::Key_Backspace, Qt::NoModifier); + QKeyEvent release(QEvent::KeyRelease, (int)Qt::Key_Backspace, Qt::NoModifier); + [self sendEventToFocusObject:press]; + [self sendEventToFocusObject:release]; } - (void)updateTextInputTraits -- cgit v1.2.3