Cocoa: Fix QCocoaBackingStore::flush on 10.8
The call to displayRect works on 10.7 but does not update the pixels on screen on 10.8. Many Qt windows do not update properly. This is a workaround found by trail and error without fully understanding the underlying issue. I would like to have this in place until we can determine the cause of the bug. Change-Id: I1ecee745f42a93ded4f651cc8ad51963f250e78d Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
This commit is contained in:
parent
4951d16110
commit
09001e72dc
@ -72,8 +72,18 @@ void QCocoaBackingStore::flush(QWindow *widget, const QRegion ®ion, const QPo
|
||||
QRect geo = region.boundingRect();
|
||||
NSRect rect = NSMakeRect(geo.x(), geo.y(), geo.width(), geo.height());
|
||||
QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window()->handle());
|
||||
if (cocoaWindow)
|
||||
if (cocoaWindow) {
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8
|
||||
if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) {
|
||||
// Workaround for malfunctioning displayRect on 10.8 where
|
||||
// calling it seems to have no effect. Call setImage like
|
||||
// resize() does.
|
||||
[cocoaWindow->m_contentView setImage:m_image];
|
||||
}
|
||||
#endif
|
||||
[cocoaWindow->m_contentView displayRect:rect];
|
||||
}
|
||||
}
|
||||
|
||||
void QCocoaBackingStore::resize(const QSize &size, const QRegion &)
|
||||
|
Loading…
Reference in New Issue
Block a user