diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-04-10 12:48:01 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-04-10 15:31:45 +0200 |
commit | 143c4d3e13a430b951f4f4f8c28db14303f80605 (patch) | |
tree | 2b89637b93fc7d81c674106008566010f986d67c /src/plugins/platforms/cocoa | |
parent | a7ed81b557d593a8ddb43b71bf4bbf3b44ead070 (diff) | |
parent | e5337ad1b1fb02873ce7b5ca8db45f6fd8063352 (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.mm | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoacursor.mm | 8 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenuloader.mm | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoaresources.qrc | 6 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 32 |
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; } |