summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/image/qmovie.cpp2
-rw-r--r--src/gui/image/qpicture.cpp7
-rw-r--r--src/gui/kernel/qwindow.cpp3
-rw-r--r--src/gui/painting/qdrawhelper.cpp4
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp2
5 files changed, 13 insertions, 5 deletions
diff --git a/src/gui/image/qmovie.cpp b/src/gui/image/qmovie.cpp
index 2ff9fb4e36..d5e8b1b974 100644
--- a/src/gui/image/qmovie.cpp
+++ b/src/gui/image/qmovie.cpp
@@ -1017,7 +1017,7 @@ QList<QByteArray> QMovie::supportedFormats()
const auto doesntSupportAnimation =
[&buffer](const QByteArray &format) {
- return !QImageReader(&buffer, format).supportsAnimation();
+ return !QImageReader(&buffer, format).supportsOption(QImageIOHandler::Animation);
};
list.erase(std::remove_if(list.begin(), list.end(), doesntSupportAnimation), list.end());
diff --git a/src/gui/image/qpicture.cpp b/src/gui/image/qpicture.cpp
index f2c5e250e1..bf628e7571 100644
--- a/src/gui/image/qpicture.cpp
+++ b/src/gui/image/qpicture.cpp
@@ -1207,7 +1207,12 @@ QT_END_INCLUDE_NAMESPACE
const char* QPicture::pictureFormat(const QString &fileName)
{
- return QPictureIO::pictureFormat(fileName);
+ const QByteArray format = QPictureIO::pictureFormat(fileName);
+ // This function returns a const char * from a QByteArray.
+ // Double check that the QByteArray is not detached, otherwise
+ // we would return a dangling pointer.
+ Q_ASSERT(!format.isDetached());
+ return format;
}
/*!
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index 1d8d6dfc95..5b5c1bd0e3 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -378,6 +378,8 @@ void QWindowPrivate::setVisible(bool visible)
QGuiApplicationPrivate::showModalWindow(q);
else
QGuiApplicationPrivate::hideModalWindow(q);
+ } else if (visible && QGuiApplication::modalWindow()) {
+ QGuiApplicationPrivate::updateBlockedStatus(q);
}
#ifndef QT_NO_CURSOR
@@ -1807,6 +1809,7 @@ void QWindow::resize(int w, int h)
void QWindow::resize(const QSize &newSize)
{
Q_D(QWindow);
+ d->positionPolicy = QWindowPrivate::WindowFrameExclusive;
if (d->platformWindow) {
d->platformWindow->setGeometry(QHighDpi::toNativePixels(QRect(position(), newSize), this));
} else {
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index b161e4c2a9..5207e861e6 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -5572,7 +5572,7 @@ static void qt_alphamapblit_generic(QRasterBuffer *rasterBuffer,
int start = qMax<int>(x, clip.x);
int end = qMin<int>(x + mapWidth, clip.x + clip.len);
- Q_ASSERT(clip.len <= buffer_size);
+ Q_ASSERT(end - start <= buffer_size);
QRgba64 *dest = destFetch64((QRgba64*)buffer, rasterBuffer, start, clip.y, end - start);
for (int xp=start; xp<end; ++xp) {
@@ -5845,7 +5845,7 @@ static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer,
int start = qMax<int>(x, clip.x);
int end = qMin<int>(x + mapWidth, clip.x + clip.len);
- Q_ASSERT(clip.len <= buffer_size);
+ Q_ASSERT(end - start <= buffer_size);
QRgba64 *dest = destFetch64((QRgba64*)buffer, rasterBuffer, start, clip.y, end - start);
for (int xp=start; xp<end; ++xp) {
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 5db4e5a919..b4f717678d 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -3207,7 +3207,7 @@ void QRasterPaintEnginePrivate::rasterizeLine_dashed(QLineF line,
QLineF l = line;
if (dash >= length) {
- dash = length;
+ dash = line.length(); // Avoid accumulated precision error in 'length'
*dashOffset += dash / width;
length = 0;
} else {