summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-04-10 12:48:01 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-04-10 15:31:45 +0200
commit143c4d3e13a430b951f4f4f8c28db14303f80605 (patch)
tree2b89637b93fc7d81c674106008566010f986d67c /src/plugins/platforms/cocoa
parenta7ed81b557d593a8ddb43b71bf4bbf3b44ead070 (diff)
parente5337ad1b1fb02873ce7b5ca8db45f6fd8063352 (diff)
Merge remote-tracking branch 'origin/master' into api_changes
Conflicts: configure src/widgets/styles/qwindowsxpstyle.cpp tests/auto/gui/kernel/qwindow/qwindow.pro tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaclipboard.mm2
-rw-r--r--src/plugins/platforms/cocoa/qcocoacursor.mm8
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenuloader.mm2
-rw-r--r--src/plugins/platforms/cocoa/qcocoaresources.qrc6
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm32
5 files changed, 39 insertions, 11 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaclipboard.mm b/src/plugins/platforms/cocoa/qcocoaclipboard.mm
index f76174e085..90e89d0198 100644
--- a/src/plugins/platforms/cocoa/qcocoaclipboard.mm
+++ b/src/plugins/platforms/cocoa/qcocoaclipboard.mm
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include "QCocoaclipboard.h"
+#include "qcocoaclipboard.h"
#include "qmacmime.h"
#include "qmacclipboard.h"
diff --git a/src/plugins/platforms/cocoa/qcocoacursor.mm b/src/plugins/platforms/cocoa/qcocoacursor.mm
index bd8d32b07e..363c746f41 100644
--- a/src/plugins/platforms/cocoa/qcocoacursor.mm
+++ b/src/plugins/platforms/cocoa/qcocoacursor.mm
@@ -204,19 +204,19 @@ NSCursor *QCocoaCursor::createCursorData(QCursor *cursor)
return createCursorFromPixmap(pixmap);
break; }
case Qt::WaitCursor: {
- QPixmap pixmap = QPixmap(QLatin1String(":/trolltech/mac/cursors/images/spincursor.png"));
+ QPixmap pixmap = QPixmap(QLatin1String(":/qt-project.org/mac/cursors/images/spincursor.png"));
return createCursorFromPixmap(pixmap);
break; }
case Qt::SizeAllCursor: {
- QPixmap pixmap = QPixmap(QLatin1String(":/trolltech/mac/cursors/images/pluscursor.png"));
+ QPixmap pixmap = QPixmap(QLatin1String(":/qt-project.org/mac/cursors/images/pluscursor.png"));
return createCursorFromPixmap(pixmap);
break; }
case Qt::BusyCursor: {
- QPixmap pixmap = QPixmap(QLatin1String(":/trolltech/mac/cursors/images/waitcursor.png"));
+ QPixmap pixmap = QPixmap(QLatin1String(":/qt-project.org/mac/cursors/images/waitcursor.png"));
return createCursorFromPixmap(pixmap);
break; }
case Qt::ForbiddenCursor: {
- QPixmap pixmap = QPixmap(QLatin1String(":/trolltech/mac/cursors/images/forbiddencursor.png"));
+ QPixmap pixmap = QPixmap(QLatin1String(":/qt-project.org/mac/cursors/images/forbiddencursor.png"));
return createCursorFromPixmap(pixmap);
break; }
#define QT_USE_APPROXIMATE_CURSORS
diff --git a/src/plugins/platforms/cocoa/qcocoamenuloader.mm b/src/plugins/platforms/cocoa/qcocoamenuloader.mm
index 70e974161e..4993937b91 100644
--- a/src/plugins/platforms/cocoa/qcocoamenuloader.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenuloader.mm
@@ -82,7 +82,7 @@ void qt_mac_loadMenuNib(QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *qtMenuLoader)
}
// Copy nib files from resources to temp.
- QDir nibResource(":/trolltech/mac/qt_menu.nib/");
+ QDir nibResource(":/qt-project.org/mac/qt_menu.nib/");
if (!nibResource.exists()) {
qWarning("qt_mac_loadMenuNib: could not load nib from resources");
return;
diff --git a/src/plugins/platforms/cocoa/qcocoaresources.qrc b/src/plugins/platforms/cocoa/qcocoaresources.qrc
index de50d397c6..392300bb03 100644
--- a/src/plugins/platforms/cocoa/qcocoaresources.qrc
+++ b/src/plugins/platforms/cocoa/qcocoaresources.qrc
@@ -1,15 +1,15 @@
<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/trolltech/mac/cursors">
+<qresource prefix="/qt-project.org/mac/cursors">
<file>images/copyarrowcursor.png</file>
<file>images/forbiddencursor.png</file>
<file>images/spincursor.png</file>
<file>images/waitcursor.png</file>
<file>images/pluscursor.png</file>
</qresource>
-<qresource prefix="/trolltech/mac/style">
+<qresource prefix="/qt-project.org/mac/style">
<file>images/leopard-unified-toolbar-on.png</file>
</qresource>
-<qresource prefix="/trolltech/mac/">
+<qresource prefix="/qt-project.org/mac/">
<file>qt_menu.nib/classes.nib</file>
<file>qt_menu.nib/info.nib</file>
<file>qt_menu.nib/keyedobjects.nib</file>
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 4f95489798..de58842772 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -96,8 +96,8 @@
QCocoaWindow::QCocoaWindow(QWindow *tlw)
: QPlatformWindow(tlw)
, m_nsWindow(0)
- , m_glContext(0)
, m_inConstructor(true)
+ , m_glContext(0)
{
QCocoaAutoReleasePool pool;
@@ -231,9 +231,10 @@ void QCocoaWindow::propagateSizeHints()
if (!window()->sizeIncrement().isNull())
[m_nsWindow setResizeIncrements : qt_mac_toNSSize(window()->sizeIncrement())];
+ QRect rect = geometry();
QSize baseSize = window()->baseSize();
if (!baseSize.isNull() && baseSize.isValid()) {
- [m_nsWindow setFrameSize : NSMakeSize(baseSize.width(), baseSize.height()) display : YES];
+ [m_nsWindow setFrame:NSMakeRect(rect.x(), rect.y(), baseSize.width(), baseSize.height()) display:YES];
}
}
@@ -364,6 +365,30 @@ NSWindow * QCocoaWindow::createNSWindow()
NSUInteger styleMask;
NSWindow *createdWindow = 0;
+ NSInteger windowLevel = -1;
+
+ if (type == Qt::Tool) {
+ windowLevel = NSFloatingWindowLevel;
+ } else if ((type & Qt::Popup) == Qt::Popup) {
+ // styleMask = NSBorderlessWindowMask;
+ windowLevel = NSPopUpMenuWindowLevel;
+
+ // Popup should be in at least the same level as its parent.
+ const QWindow * const transientParent = window()->transientParent();
+ const QCocoaWindow * const transientParentWindow = transientParent ? static_cast<QCocoaWindow *>(transientParent->handle()) : 0;
+ if (transientParentWindow)
+ windowLevel = qMax([transientParentWindow->m_nsWindow level], windowLevel);
+ }
+
+ // StayOnTop window should appear above Tool windows.
+ if (flags & Qt::WindowStaysOnTopHint)
+ windowLevel = NSPopUpMenuWindowLevel;
+ // Tooltips should appear above StayOnTop windows.
+ if (type == Qt::ToolTip)
+ windowLevel = NSScreenSaverWindowLevel;
+ // All other types are Normal level.
+ if (windowLevel == -1)
+ windowLevel = NSNormalWindowLevel;
// Use NSPanel for popup-type windows. (Popup, Tool, ToolTip, SplashScreen)
if ((type & Qt::Popup) == Qt::Popup) {
@@ -403,6 +428,9 @@ NSWindow * QCocoaWindow::createNSWindow()
createdWindow = window;
}
+
+ [createdWindow setLevel:windowLevel];
+
return createdWindow;
}