From 276776f50369580f33ec01b22aa928e48358a0f7 Mon Sep 17 00:00:00 2001 From: Morten Johan Sorvig Date: Fri, 4 May 2012 12:28:26 +0200 Subject: Don't flush WA_DontShowOnScreen widgets. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QBackingStore::flush expects that windows have gotten expose events before flush is called. Not on screen -> no expose events -> don't call flush. Change-Id: Id868888566fe672939f3c5775f9f371fb3240ee8 Reviewed-by: Samuel Rødal --- src/widgets/kernel/qwidgetbackingstore.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/widgets') diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index 2c9ad14bcf..a697578bc7 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -104,6 +104,10 @@ static inline void qt_flush(QWidget *widget, const QRegion ®ion, QBackingStor frames = 0; } } + + if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen)) + return; + if (widget != tlw) backingStore->flush(region, widget->windowHandle(), tlwOffset + widget->mapTo(tlw, QPoint())); else -- cgit v1.2.3