summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qwidget_mac.mm
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@nokia.com>2010-05-31 13:02:54 (GMT)
committerRichard Moe Gustavsen <richard.gustavsen@nokia.com>2010-05-31 13:06:24 (GMT)
commit4d66a933837ffc51fdef01f9485be58d5788b787 (patch)
tree0a4fa874baacd1efe9f4311c3cfd3c12d7e54261 /src/gui/kernel/qwidget_mac.mm
parentba9f3e4a232e2199115710a630906fd3da50552a (diff)
downloadQt-4d66a933837ffc51fdef01f9485be58d5788b787.zip
Qt-4d66a933837ffc51fdef01f9485be58d5788b787.tar.gz
Qt-4d66a933837ffc51fdef01f9485be58d5788b787.tar.bz2
Revert "Cocoa: remove 'double' content view from window"
This reverts commit 5cdafc956f6f2e18012b31d68851150d89d7e577. Reason: Broke some autotests (qgl, qglversioncheck). It needs some more investigation.
Diffstat (limited to 'src/gui/kernel/qwidget_mac.mm')
-rw-r--r--src/gui/kernel/qwidget_mac.mm33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 3e0ad40..5bb3f1c 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -239,8 +239,6 @@ static NSDrawer *qt_mac_drawer_for(const QWidget *widget)
static void qt_mac_destructView(OSViewRef view)
{
#ifdef QT_MAC_USE_COCOA
- if ([[view window] contentView] == view)
- [[view window] setContentView:0];
[view removeFromSuperview];
[view release];
#else
@@ -2289,23 +2287,28 @@ void QWidgetPrivate::finishCreateWindow_sys_Cocoa(void * /*NSWindow * */ voidWin
Q_UNUSED(dialog);
data.fstrut_dirty = true; // when we create a toplevel widget, the frame strut should be dirty
-
OSViewRef nsview = (OSViewRef)data.winid;
+ OSViewRef window_contentview = qt_mac_get_contentview_for(windowRef);
if (!nsview) {
- nsview = qt_mac_create_widget(q, this, 0);
+ nsview = qt_mac_create_widget(q, this, window_contentview);
setWinId(WId(nsview));
+ } else {
+ [window_contentview addSubview:nsview];
+ }
+ if (nsview) {
+ NSRect bounds = [window_contentview bounds];
+ [nsview setFrame:bounds];
+ [nsview setHidden:NO];
+ if (q->testAttribute(Qt::WA_DropSiteRegistered))
+ registerDropSite(true);
+ transferChildren();
+
+ // Tell Cocoa explicit that we wan't the view to receive key events
+ // (regardless of focus policy) because this is how it works on other
+ // platforms (and in the carbon port):
+ if (!qApp->focusWidget())
+ [windowRef makeFirstResponder:nsview];
}
- [windowRef setContentView:nsview];
- [nsview setHidden:NO];
- if (q->testAttribute(Qt::WA_DropSiteRegistered))
- registerDropSite(true);
- transferChildren();
-
- // Tell Cocoa explicit that we wan't the view to receive key events
- // (regardless of focus policy) because this is how it works on other
- // platforms (and in the carbon port):
- if (!qApp->focusWidget())
- [windowRef makeFirstResponder:nsview];
if (topExtra->posFromMove) {
updateFrameStrut();