Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.2.4, 6.4.0
-
None
-
Windows 10, 4K display (I haven't tested low res. display yet)
Description
Using this minimum reproducible example code:
#include <QExposeEvent> #include <QGuiApplication> #include <QPaintEvent> #include <QResizeEvent> #include <QWindow> class Window : public QWindow { protected: void paintEvent(QPaintEvent *event) override { qDebug() << event; QWindow::paintEvent(event); } void exposeEvent(QExposeEvent *event) override { qDebug() << event; QWindow::exposeEvent(event); } void resizeEvent(QResizeEvent *event) override { qDebug() << event; QWindow::resizeEvent(event); } }; int main(int argc, char *argv[]) { QGuiApplication a(argc, argv); Window w; w.show(); return a.exec(); }
Steps to reproduce:
1) Run the code
2) Grip the right edge (or any edge) of the window with the mouse and start resizing the window
3) While resize event is logged only once for each size step change, paint event and expose event are logged sometimes twice.
QResizeEvent(541, 160) QPaintEvent(QRegion(0,0 541x160)) QExposeEvent(QRegion(0,0 541x160)) QPaintEvent(QRegion(0,0 541x160)) QExposeEvent(QRegion(0,0 541x160)) QResizeEvent(542, 160) QPaintEvent(QRegion(0,0 542x160)) QExposeEvent(QRegion(0,0 542x160)) QPaintEvent(QRegion(0,0 542x160)) QExposeEvent(QRegion(0,0 542x160)) QResizeEvent(543, 160) QPaintEvent(QRegion(0,0 543x160)) QExposeEvent(QRegion(0,0 543x160)) QResizeEvent(544, 160) QPaintEvent(QRegion(0,0 544x160)) QExposeEvent(QRegion(0,0 544x160)) QPaintEvent(QRegion(0,0 544x160)) QExposeEvent(QRegion(0,0 544x160))
Expected output would be:
QResizeEvent(541, 160) QPaintEvent(QRegion(0,0 541x160)) QExposeEvent(QRegion(0,0 541x160)) QResizeEvent(542, 160) QPaintEvent(QRegion(0,0 542x160)) QExposeEvent(QRegion(0,0 542x160)) QResizeEvent(543, 160) QPaintEvent(QRegion(0,0 543x160)) QExposeEvent(QRegion(0,0 543x160)) QResizeEvent(544, 160) QPaintEvent(QRegion(0,0 544x160)) QExposeEvent(QRegion(0,0 544x160))
The expected output is what I get on other platforms (X11, macOS) or with scaling of 100 % (device pixel ratio = 1).