summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-06-13 09:01:02 +0200
committerLiang Qi <liang.qi@qt.io>2016-06-13 12:46:46 +0200
commit511790fd1af1e2886a0e2e8dd4308099705cd815 (patch)
treeb42aee537a6103cd064f9f41ae2889b09b79fd23 /tests/auto/widgets/kernel
parent1542d8881fc5ccbc5918cd4acbe4091ebbd24508 (diff)
parentcbe332405aa22257d432f1797b325f5e57007c20 (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: config_help.txt configure mkspecs/features/uikit/sdk.prf src/corelib/global/qhooks.cpp src/corelib/io/qfilesystemwatcher.cpp src/corelib/io/qlockfile_unix.cpp src/corelib/tools/qalgorithms.h src/gui/kernel/qwindowsysteminterface.h src/gui/text/qtextdocument_p.cpp src/network/access/access.pri src/network/access/qnetworkaccessmanager.cpp src/network/access/qnetworkreplynsurlconnectionimpl.mm src/src.pro src/testlib/qtestcase.cpp src/widgets/kernel/qwidgetbackingstore_p.h src/widgets/styles/qwindowscestyle.cpp src/widgets/styles/qwindowsmobilestyle.cpp tests/auto/corelib/io/qdiriterator/qdiriterator.pro tests/auto/corelib/io/qfileinfo/qfileinfo.pro tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp tools/configure/configureapp.cpp Change-Id: Ibf7fb9c8cf263a810ade82f821345d0725c57c67
Diffstat (limited to 'tests/auto/widgets/kernel')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp20
-rw-r--r--tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp24
2 files changed, 24 insertions, 20 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 3253d09bb8..e19e9e5bf1 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -326,7 +326,6 @@ private slots:
void setMaskInResizeEvent();
void moveInResizeEvent();
- void immediateRepaintAfterShow();
void immediateRepaintAfterInvalidateBuffer();
void effectiveWinId();
@@ -7988,25 +7987,6 @@ void tst_QWidget::moveInResizeEvent()
QTRY_COMPARE(testWidget.geometry(), expectedGeometry);
}
-void tst_QWidget::immediateRepaintAfterShow()
-{
- if (m_platform == QStringLiteral("xcb"))
- QSKIP("QTBUG-26424");
- if (m_platform != QStringLiteral("xcb") && m_platform != QStringLiteral("windows"))
- QSKIP("We don't support immediate repaint right after show on other platforms.");
-
- UpdateWidget widget;
- centerOnScreen(&widget);
- widget.show();
- qApp->processEvents();
- // On X11 in particular, we are now waiting for a MapNotify event before
- // syncing the backing store. However, if someone request a repaint()
- // we must repaint immediately regardless of the current state.
- widget.numPaintEvents = 0;
- widget.repaint();
- QCOMPARE(widget.numPaintEvents, 1);
-}
-
void tst_QWidget::immediateRepaintAfterInvalidateBuffer()
{
if (m_platform != QStringLiteral("xcb") && m_platform != QStringLiteral("windows"))
diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
index 301ddf441e..a59dd8c80e 100644
--- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
+++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
@@ -83,6 +83,7 @@ private slots:
void tst_showWithoutActivating();
void tst_paintEventOnSecondShow();
+ void tst_paintEventOnResize_QTBUG50796();
#ifndef QT_NO_DRAGANDDROP
void tst_dnd();
@@ -365,6 +366,29 @@ void tst_QWidget_window::tst_paintEventOnSecondShow()
QTRY_VERIFY(w.paintEventCount > 0);
}
+void tst_QWidget_window::tst_paintEventOnResize_QTBUG50796()
+{
+ const QRect availableGeo = QGuiApplication::primaryScreen()->availableGeometry();
+
+ QWidget root;
+ root.setGeometry(availableGeo.width()/2 - 100, availableGeo.height()/2 - 100,
+ 200, 200);
+
+ PaintTestWidget *native = new PaintTestWidget(&root);
+ native->winId(); // We're testing native widgets
+ native->setGeometry(10, 10, 50, 50);
+
+ root.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&root));
+ QVERIFY(QTest::qWaitForWindowActive(&root));
+ QVERIFY(native->isVisible());
+
+ native->paintEventCount = 0;
+ native->resize(native->width() + 10, native->height() + 10);
+ QTest::qWait(50); // Wait for paint events
+ QTRY_COMPARE(native->paintEventCount, 1); // Only one paint event must occur
+}
+
#ifndef QT_NO_DRAGANDDROP
/* DnD test for QWidgetWindow (handleDrag*Event() functions).