From df86721bb4028ae09c5ce7d71a89808b8f2ccdcd Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Fri, 7 Feb 2014 14:16:22 +0100 Subject: [PATCH] Cocoa: Neuter -[QNSView cancelOperation:] for normal windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QNSWindow inherits QNSPanel regardless of the kind of QWindow. With NSPanels, pressing escape is equivalent to dismissing the panel. That is not the behavior we aim at for normal toplevel QWindows. Task-number: QTBUG-36694 Change-Id: I1a1c138183cc43c968249442021f334cd37f7ce0 Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qnsview.mm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index b272b4920b..d4d345f61d 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -1371,6 +1371,12 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent) [self tryToPerform:aSelector with:self]; } +- (void)cancelOperation:(id)sender +{ + if (!m_platformWindow || m_platformWindow->windowShouldBehaveAsPanel()) + [super cancelOperation:sender]; +} + - (void) insertText:(id)aString replacementRange:(NSRange)replacementRange { Q_UNUSED(replacementRange)