diff -r ef0373b55136 -r 758a864f9613 src/gui/kernel/qcocoasharedwindowmethods_mac_p.h --- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h Fri Sep 17 08:34:18 2010 +0300 +++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h Mon Oct 04 01:19:32 2010 +0300 @@ -58,6 +58,8 @@ extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.mm extern QPointer qt_button_down; //qapplication_mac.cpp extern const QStringList& qEnabledDraggedTypes(); // qmime_mac.cpp +extern void qt_event_request_window_change(QWidget *); // qapplication_mac.mm +extern void qt_mac_send_posted_gl_updates(QWidget *widget); // qapplication_mac.mm Q_GLOBAL_STATIC(QPointer, currentDragTarget); @@ -227,6 +229,19 @@ [self release]; } +- (void)setInitialFirstResponder:(NSView *)view +{ + // This method is called the first time the window is placed on screen and + // is the earliest point in time we can connect OpenGL contexts to NSViews. + QWidget *qwidget = [[QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate] qt_qwidgetForWindow:self]; + if (qwidget) { + qt_event_request_window_change(qwidget); + qt_mac_send_posted_gl_updates(qwidget); + } + + [super setInitialFirstResponder:view]; +} + - (BOOL)makeFirstResponder:(NSResponder *)responder { // For some reason Cocoa wants to flip the first responder