From f2d26be44103107f9dda3a3f740d8b43a6357fb0 Mon Sep 17 00:00:00 2001 From: Antti Kervinen Date: Wed, 8 Sep 2010 15:09:26 +0300 Subject: Fixes: NB#190565 - displayEntered can be received by application page without visible window RevBy: Daniel d'Andrada Details: MWidget::setVisible(true) fixed to check the visibility of the widget by calling isOnDisplay(). This is a bit slower than the previous implementation, but setVisible(true) is not called very frequently. Test added to MWidget unit test. --- src/corelib/widgets/core/mwidget.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/corelib/widgets/core/mwidget.cpp b/src/corelib/widgets/core/mwidget.cpp index 917d7365..e498f1ac 100644 --- a/src/corelib/widgets/core/mwidget.cpp +++ b/src/corelib/widgets/core/mwidget.cpp @@ -503,7 +503,11 @@ void MWidget::setVisible(bool visible) // show() called: resolve visibility if (visible) { - d->resolveIsOnDisplay(this, &visibleSceneRect); + if (isOnDisplay()) { + MOnDisplayChangeEvent event(MOnDisplayChangeEvent::FullyOnDisplay, + visibleSceneRect); + d->resolveIsOnDisplay(this, &visibleSceneRect, &event); + } // hide() called: explicitly send FullyOffDisplay } else { MOnDisplayChangeEvent event(MOnDisplayChangeEvent::FullyOffDisplay, -- cgit v1.2.3