summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-01-24 10:33:37 +0100
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-01-25 20:06:06 +0100
commit318b58562ae89453fb98e8145cd0440e14ba60b0 (patch)
tree622bc032cf076b4569621032f3a3315d95c3ae88 /src/plugins/platforms/cocoa
parentc28fde3fdac19fd5a5f614bb7983080031c924b3 (diff)
parent79352528a1726b4551ea4d9285dd2394dd0d43da (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: .qmake.conf mkspecs/common/msvc-desktop.conf mkspecs/common/msvc-version.conf mkspecs/common/winrt_winphone/qmake.conf mkspecs/features/mac/default_post.prf mkspecs/features/mac/sdk.prf mkspecs/features/qt.prf mkspecs/features/uikit/default_post.prf mkspecs/features/winrt/default_pre.prf mkspecs/winphone-arm-msvc2013/qmake.conf mkspecs/winphone-x86-msvc2013/qmake.conf mkspecs/winrt-arm-msvc2013/qmake.conf mkspecs/winrt-x64-msvc2013/qmake.conf mkspecs/winrt-x86-msvc2013/qmake.conf qmake/generators/win32/msvc_vcproj.cpp src/gui/kernel/qwindowsysteminterface.cpp src/network/kernel/qhostaddress.cpp src/plugins/platforms/mirclient/qmirclientplugin.cpp src/plugins/platforms/mirclient/qmirclientplugin.h src/widgets/util/qsystemtrayicon.cpp tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp tools/configure/Makefile.mingw tools/configure/Makefile.win32 Done-with: Jake Petroules <jake.petroules@qt.io> Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: I4be3262d3994e11929d3b1ded2c3379783797dbe
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm30
-rw-r--r--src/plugins/platforms/cocoa/qcocoakeymapper.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm2
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm6
4 files changed, 21 insertions, 21 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
index 97bd402b73..e743dd56bf 100644
--- a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
+++ b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
@@ -235,19 +235,19 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
if (!iface || !iface->isValid())
return nil;
- if (QWindow *window = iface->window()) {
- QCocoaWindow *win = static_cast<QCocoaWindow*>(window->handle());
- return qnsview_cast(win->view());
+ if (QAccessibleInterface *parent = iface->parent()) {
+ QAccessible::Id parentId = QAccessible::uniqueId(parent);
+ return [QMacAccessibilityElement elementWithId: parentId];
}
- QAccessibleInterface *parent = iface->parent();
- if (!parent) {
- qWarning() << "INVALID PARENT FOR INTERFACE: " << iface;
- return nil;
+ if (QWindow *window = iface->window()) {
+ QPlatformWindow *platformWindow = window->handle();
+ if (platformWindow) {
+ QCocoaWindow *win = static_cast<QCocoaWindow*>(platformWindow);
+ return qnsview_cast(win->view());
+ }
}
-
- QAccessible::Id parentId = QAccessible::uniqueId(parent);
- return [QMacAccessibilityElement elementWithId: parentId];
+ return nil;
}
@@ -537,7 +537,7 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
- (void)accessibilityPerformAction:(NSString *)action {
QAccessibleInterface *iface = QAccessible::accessibleInterface(axid);
- if (iface) {
+ if (iface && iface->isValid()) {
const QString qtAction = QCocoaAccessible::translateAction(action, iface);
QAccessibleBridgeUtils::performEffectiveAction(iface, qtAction);
}
@@ -562,16 +562,16 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
int y = qt_mac_flipYCoordinate(point.y);
QAccessibleInterface *childInterface = iface->childAt(point.x, y);
// No child found, meaning we hit this element.
- if (!childInterface)
+ if (!childInterface || !childInterface->isValid())
return NSAccessibilityUnignoredAncestor(self);
// find the deepest child at the point
QAccessibleInterface *childOfChildInterface = 0;
do {
childOfChildInterface = childInterface->childAt(point.x, y);
- if (childOfChildInterface)
+ if (childOfChildInterface && childOfChildInterface->isValid())
childInterface = childOfChildInterface;
- } while (childOfChildInterface);
+ } while (childOfChildInterface && childOfChildInterface->isValid());
QAccessible::Id childId = QAccessible::uniqueId(childInterface);
// hit a child, forward to child accessible interface.
@@ -590,7 +590,7 @@ static void convertLineOffset(QAccessibleTextInterface *text, int *line, int *of
}
QAccessibleInterface *childInterface = iface->focusChild();
- if (childInterface) {
+ if (childInterface && childInterface->isValid()) {
QAccessible::Id childAxid = QAccessible::uniqueId(childInterface);
QMacAccessibilityElement *accessibleElement = [QMacAccessibilityElement elementWithId:childAxid];
return NSAccessibilityUnignoredAncestor(accessibleElement);
diff --git a/src/plugins/platforms/cocoa/qcocoakeymapper.mm b/src/plugins/platforms/cocoa/qcocoakeymapper.mm
index e7952ae1f6..1ef7f11011 100644
--- a/src/plugins/platforms/cocoa/qcocoakeymapper.mm
+++ b/src/plugins/platforms/cocoa/qcocoakeymapper.mm
@@ -366,7 +366,9 @@ Qt::KeyboardModifiers QCocoaKeyMapper::queryKeyboardModifiers()
bool QCocoaKeyMapper::updateKeyboard()
{
const UCKeyboardLayout *uchrData = 0;
- QCFType<TISInputSourceRef> source = TISCopyCurrentKeyboardInputSource();
+ QCFType<TISInputSourceRef> source = TISCopyInputMethodKeyboardLayoutOverride();
+ if (!source)
+ source = TISCopyCurrentKeyboardInputSource();
if (keyboard_mode != NullMode && source == currentInputSource) {
return false;
}
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 43817febd4..fe24f95db4 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -749,7 +749,7 @@ void QCocoaWindow::setVisible(bool visible)
if (cocoaEventDispatcher)
cocoaEventDispatcherPrivate = static_cast<QCocoaEventDispatcherPrivate *>(QObjectPrivate::get(cocoaEventDispatcher));
- if (!(cocoaEventDispatcherPrivate && cocoaEventDispatcherPrivate->currentModalSession()))
+ if (cocoaEventDispatcherPrivate && cocoaEventDispatcherPrivate->cocoaModalSessionStack.isEmpty())
[m_nsWindow makeKeyAndOrderFront:nil];
else
[m_nsWindow orderFront:nil];
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 689fd06d66..7ce407f7d0 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -754,9 +754,6 @@ static bool _q_dontOverrideCtrlLMB = false;
if (masked)
return false;
- if (button == Qt::RightButton)
- m_sendUpAsRightButton = true;
-
m_buttons |= button;
[self handleMouseEvent:theEvent];
@@ -2094,7 +2091,8 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
}
NSPoint windowPoint = [self.window convertRectFromScreen:NSMakeRect(screenPoint.x, screenPoint.y, 1, 1)].origin;
- QPoint qtWindowPoint(windowPoint.x, windowPoint.y);
+ NSPoint nsViewPoint = [self convertPoint: windowPoint fromView: nil]; // NSView/QWindow coordinates
+ QPoint qtWindowPoint(nsViewPoint.x, nsViewPoint.y);
QPoint qtScreenPoint = QPoint(screenPoint.x, qt_mac_flipYCoordinate(screenPoint.y));