mirror of
https://github.com/danog/patches.git
synced 2024-12-02 09:17:58 +01:00
2b9afa7592
Backport support for opening directories with xdg desktop portals Backport fix for ibus on wayland
60 lines
2.1 KiB
Diff
60 lines
2.1 KiB
Diff
diff --git a/src/gui/painting/qbezier.cpp b/src/gui/painting/qbezier.cpp
|
|
index 65e6063fe4..fcf19a1a63 100644
|
|
--- a/src/gui/painting/qbezier.cpp
|
|
+++ b/src/gui/painting/qbezier.cpp
|
|
@@ -400,6 +400,33 @@ static bool addCircle(const QBezier *b, qreal offset, QBezier *o)
|
|
return true;
|
|
}
|
|
|
|
+// Patch: Workaround VS2019 compiler bug, see QTBUG-75280.
|
|
+#ifdef Q_OS_WIN
|
|
+Q_NEVER_INLINE void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const
|
|
+{
|
|
+ Q_ASSERT(firstHalf);
|
|
+ Q_ASSERT(secondHalf);
|
|
+
|
|
+ qreal c = (x2 + x3)*.5;
|
|
+ firstHalf->x2 = (x1 + x2)*.5;
|
|
+ secondHalf->x3 = (x3 + x4)*.5;
|
|
+ firstHalf->x1 = x1;
|
|
+ secondHalf->x4 = x4;
|
|
+ firstHalf->x3 = (firstHalf->x2 + c)*.5;
|
|
+ secondHalf->x2 = (secondHalf->x3 + c)*.5;
|
|
+ firstHalf->x4 = secondHalf->x1 = (firstHalf->x3 + secondHalf->x2)*.5;
|
|
+
|
|
+ c = (y2 + y3)/2;
|
|
+ firstHalf->y2 = (y1 + y2)*.5;
|
|
+ secondHalf->y3 = (y3 + y4)*.5;
|
|
+ firstHalf->y1 = y1;
|
|
+ secondHalf->y4 = y4;
|
|
+ firstHalf->y3 = (firstHalf->y2 + c)*.5;
|
|
+ secondHalf->y2 = (secondHalf->y3 + c)*.5;
|
|
+ firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2)*.5;
|
|
+}
|
|
+#endif // Q_OS_WIN
|
|
+
|
|
int QBezier::shifted(QBezier *curveSegments, int maxSegments, qreal offset, float threshold) const
|
|
{
|
|
Q_ASSERT(curveSegments);
|
|
diff --git a/src/gui/painting/qbezier_p.h b/src/gui/painting/qbezier_p.h
|
|
index f8a91e9ef3..50c60b2d71 100644
|
|
--- a/src/gui/painting/qbezier_p.h
|
|
+++ b/src/gui/painting/qbezier_p.h
|
|
@@ -222,6 +222,8 @@ inline QPointF QBezier::secondDerivedAt(qreal t) const
|
|
a * y1 + b * y2 + c * y3 + d * y4);
|
|
}
|
|
|
|
+// Patch: Workaround VS2019 compiler bug, see QTBUG-75280.
|
|
+#ifndef Q_OS_WIN
|
|
inline void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const
|
|
{
|
|
Q_ASSERT(firstHalf);
|
|
@@ -245,6 +247,7 @@ inline void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const
|
|
secondHalf->y2 = (secondHalf->y3 + c)*.5;
|
|
firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2)*.5;
|
|
}
|
|
+#endif // Q_OS_WIN
|
|
|
|
inline void QBezier::parameterSplitLeft(qreal t, QBezier *left)
|
|
{
|