diff options
author | Andy Shaw <andy.shaw@digia.com> | 2014-08-22 14:19:04 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@digia.com> | 2014-09-19 09:35:56 +0200 |
commit | a5df2e7120412dfdedb9f4951cdb061c0f218bf7 (patch) | |
tree | ae309df5ac141a3749ea6f5b6216a409dd2fc0d3 /src/plugins | |
parent | 1fa3627423a73fe19333e2e016feb35cdf8cd1ea (diff) |
Cocoa: Handle insertNewLine selector for when it is sent while composing text
Some IMEs will perform an insertNewLine when Return/Enter is pressed while
composing text as well as causing the edit to finish. By handling this it
will ensure that the extra enter/return event is sent when the IME
requests it.
Task-id: QTBUG-39125
Change-Id: Ice6eded68e6b1dc51703a38316f76f78099923da
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview.mm | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview.h b/src/plugins/platforms/cocoa/qnsview.h index cbeecb987f..44a1556fc4 100644 --- a/src/plugins/platforms/cocoa/qnsview.h +++ b/src/plugins/platforms/cocoa/qnsview.h @@ -78,6 +78,7 @@ Q_FORWARD_DECLARE_OBJC_CLASS(QNSViewMouseMoveHelper); bool m_shouldSetGLContextinDrawRect; NSString *m_inputSource; QNSViewMouseMoveHelper *m_mouseMoveHelper; + bool m_resendKeyEvent; } - (id)init; diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 7ece5dcdf8..86691456b8 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -149,6 +149,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; m_sendUpAsRightButton = false; m_inputSource = 0; m_mouseMoveHelper = [[QNSViewMouseMoveHelper alloc] initWithView:self]; + m_resendKeyEvent = false; if (!touchDevice) { touchDevice = new QTouchDevice; @@ -1402,6 +1403,8 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) } } } + if (m_resendKeyEvent) + m_sendKeyEvent = true; } if (m_sendKeyEvent && m_composingText.isEmpty()) @@ -1409,6 +1412,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) nativeScanCode, nativeVirtualKey, nativeModifiers, text, [nsevent isARepeat]); m_sendKeyEvent = false; + m_resendKeyEvent = false; } - (void)keyDown:(NSEvent *)nsevent @@ -1479,6 +1483,12 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) } } +- (void) insertNewline:(id)sender +{ + Q_UNUSED(sender); + m_resendKeyEvent = true; +} + - (void) doCommandBySelector:(SEL)aSelector { [self tryToPerform:aSelector with:self]; |