diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-05-14 11:34:26 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-07-07 11:49:31 +0200 |
commit | bcbc4d4de2d4d27f70fc56baf104d93b31d57061 (patch) | |
tree | e3e304d270a5de862e67c04e58373277255655ed /src | |
parent | d7fc2fb5c666e58facfa15e64551a80dfda2c9d2 (diff) |
macOS: Get rid of QCocoaWindowFunctions
The functionality is now directly available in the QCocoaWindow platform
interface, instead of going through the indirection of the platform headers
and native interface.
Task-number: QTBUG-84220
Change-Id: Ifc48263c83806705b44364f7727d317847737ab4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qplatformwindow.h | 1 | ||||
-rw-r--r-- | src/platformheaders/cocoafunctions/cocoafunctions.pri | 1 | ||||
-rw-r--r-- | src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc | 58 | ||||
-rw-r--r-- | src/platformheaders/cocoafunctions/qcocoawindowfunctions_p.h | 74 | ||||
-rw-r--r-- | src/platformheaders/platformheaders.pro | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoanativeinterface.h | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoanativeinterface.mm | 10 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.h | 3 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 7 |
9 files changed, 2 insertions, 155 deletions
diff --git a/src/gui/kernel/qplatformwindow.h b/src/gui/kernel/qplatformwindow.h index 5ec2ecb2e0..e6f087ebd0 100644 --- a/src/gui/kernel/qplatformwindow.h +++ b/src/gui/kernel/qplatformwindow.h @@ -179,6 +179,7 @@ struct Q_GUI_EXPORT QCocoaWindow { QT_DECLARE_PLATFORM_INTERFACE(QCocoaWindow) virtual void setContentBorderEnabled(bool enable) = 0; + virtual QPoint bottomLeftClippedByNSWindowOffset() const = 0; }; #endif diff --git a/src/platformheaders/cocoafunctions/cocoafunctions.pri b/src/platformheaders/cocoafunctions/cocoafunctions.pri deleted file mode 100644 index 640d29c8ce..0000000000 --- a/src/platformheaders/cocoafunctions/cocoafunctions.pri +++ /dev/null @@ -1 +0,0 @@ -HEADERS += $$PWD/qcocoawindowfunctions_p.h diff --git a/src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc b/src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc deleted file mode 100644 index e164a92e22..0000000000 --- a/src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: https://www.gnu.org/licenses/fdl-1.3.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \class QCocoaWindowFunctions - \inmodule QtPlatformHeaders - - \brief The QCocoaWindowFunctions class is an inline class containing - miscellaneous functionality for NSWindow and NSView window specific functionality. - - \note There is no binary compatibility guarantee for this class, - meaning that an application using it is only guaranteed to work with the Qt - version it was developed against. -*/ - -/*! - \typedef QCocoaWindowFunctions::BottomLeftClippedByNSWindowOffset - - This is the typedef for the function returned by QGuiApplication::platformFunction when passed clippedByNSWindowIdentifier. -*/ - -/*! - \fn QByteArray QCocoaWindowFunctions::bottomLeftClippedByNSWindowOffsetIdentifier() - - This function returns the bytearray that can be used to query - QGuiApplication::platformFunction to retrieve the BottomLeftClippedByNSWindowOffset function. -*/ - -/*! - \fn QPoint QCocoaWindowFunctions::bottomLeftClippedByNSWindowOffset(QWindow *window) - - This is a convenience function that can be used directly instead of resolving the function pointer. - \a window will be relayed to the function retrieved by QGuiApplication -*/ diff --git a/src/platformheaders/cocoafunctions/qcocoawindowfunctions_p.h b/src/platformheaders/cocoafunctions/qcocoawindowfunctions_p.h deleted file mode 100644 index 7701509a66..0000000000 --- a/src/platformheaders/cocoafunctions/qcocoawindowfunctions_p.h +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QCOCOAWINDOWFUNCTIONS_H -#define QCOCOAWINDOWFUNCTIONS_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtPlatformHeaders/private/qplatformheaderhelper_p.h> - -QT_BEGIN_NAMESPACE - -class QWindow; - -class QCocoaWindowFunctions { -public: - typedef QPoint (*BottomLeftClippedByNSWindowOffset)(QWindow *window); - static const QByteArray bottomLeftClippedByNSWindowOffsetIdentifier() { return QByteArrayLiteral("CocoaBottomLeftClippedByNSWindowOffset"); } - - static QPoint bottomLeftClippedByNSWindowOffset(QWindow *window) - { - return QPlatformHeaderHelper::callPlatformFunction<QPoint, BottomLeftClippedByNSWindowOffset>(bottomLeftClippedByNSWindowOffsetIdentifier(),window); - } -}; - - -QT_END_NAMESPACE - -#endif // QCOCOAWINDOWFUNCTIONS_H diff --git a/src/platformheaders/platformheaders.pro b/src/platformheaders/platformheaders.pro index 867f71a4bb..56a63d9688 100644 --- a/src/platformheaders/platformheaders.pro +++ b/src/platformheaders/platformheaders.pro @@ -5,7 +5,6 @@ include(xcbfunctions/xcbfunctions.pri) include(eglfsfunctions/eglfsfunctions.pri) include(windowsfunctions/windowsfunctions.pri) include(helper/helper.pri) -include(cocoafunctions/cocoafunctions.pri) include(waylandfunctions/waylandfunctions.pri) include(linuxfbfunctions/linuxfbfunctions.pri) diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.h b/src/plugins/platforms/cocoa/qcocoanativeinterface.h index faa4e72e46..6606d61b7a 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.h +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.h @@ -63,8 +63,6 @@ public: NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) override; - QFunctionPointer platformFunction(const QByteArray &function) const override; - public Q_SLOTS: void onAppFocusWindowChanged(QWindow *window); diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index 3b11afa8a3..199ea99eb6 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -64,8 +64,6 @@ #include <QtGui/private/qcoregraphics_p.h> -#include <QtPlatformHeaders/private/qcocoawindowfunctions_p.h> - #if QT_CONFIG(vulkan) #include <MoltenVK/mvk_vulkan.h> #endif @@ -160,14 +158,6 @@ void QCocoaNativeInterface::onAppFocusWindowChanged(QWindow *window) QCocoaMenuBar::updateMenuBarImmediately(); } -QFunctionPointer QCocoaNativeInterface::platformFunction(const QByteArray &function) const -{ - if (function == QCocoaWindowFunctions::bottomLeftClippedByNSWindowOffsetIdentifier()) - return QFunctionPointer(QCocoaWindowFunctions::BottomLeftClippedByNSWindowOffset(QCocoaWindow::bottomLeftClippedByNSWindowOffsetStatic)); - - return nullptr; -} - void QCocoaNativeInterface::addToMimeList(void *macPasteboardMime) { qt_mac_addToGlobalMimeList(reinterpret_cast<QMacInternalPasteboardMime *>(macPasteboardMime)); diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h index 0c607320f8..a46f8913f9 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.h +++ b/src/plugins/platforms/cocoa/qcocoawindow.h @@ -202,8 +202,7 @@ public: QWindow *childWindowAt(QPoint windowPoint); bool shouldRefuseKeyWindowAndFirstResponder(); - static QPoint bottomLeftClippedByNSWindowOffsetStatic(QWindow *window); - QPoint bottomLeftClippedByNSWindowOffset() const; + QPoint bottomLeftClippedByNSWindowOffset() const override; enum RecreationReason { RecreationNotNeeded = 0, diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 13a7523ade..667db88a91 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1881,13 +1881,6 @@ bool QCocoaWindow::shouldRefuseKeyWindowAndFirstResponder() return false; } -QPoint QCocoaWindow::bottomLeftClippedByNSWindowOffsetStatic(QWindow *window) -{ - if (window->handle()) - return static_cast<QCocoaWindow *>(window->handle())->bottomLeftClippedByNSWindowOffset(); - return QPoint(); -} - QPoint QCocoaWindow::bottomLeftClippedByNSWindowOffset() const { if (!m_view) |