diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-09-08 04:35:41 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-09-08 09:21:01 +0200 |
commit | dbd129895852cbeabe59b156a29f1f1d6d0eea2c (patch) | |
tree | 979bf372c1cbe62de4544a4159a0907a3ed6fd56 /dev-qt/qtgui/files | |
parent | dev-ruby/ruby-beautify: document ruby25 status (diff) | |
download | gentoo-dbd129895852cbeabe59b156a29f1f1d6d0eea2c.tar.gz gentoo-dbd129895852cbeabe59b156a29f1f1d6d0eea2c.tar.bz2 gentoo-dbd129895852cbeabe59b156a29f1f1d6d0eea2c.zip |
dev-qt: Drop Qt 5.9.4
Closes: https://bugs.gentoo.org/609752
Closes: https://bugs.gentoo.org/652508
Package-Manager: Portage-2.3.49, Repoman-2.3.10
Diffstat (limited to 'dev-qt/qtgui/files')
-rw-r--r-- | dev-qt/qtgui/files/qtgui-5.9.4-libinput-pixeldelta.patch | 68 | ||||
-rw-r--r-- | dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch | 87 | ||||
-rw-r--r-- | dev-qt/qtgui/files/qtgui-5.9.4-qsimpledrag.patch | 170 |
3 files changed, 0 insertions, 325 deletions
diff --git a/dev-qt/qtgui/files/qtgui-5.9.4-libinput-pixeldelta.patch b/dev-qt/qtgui/files/qtgui-5.9.4-libinput-pixeldelta.patch deleted file mode 100644 index b9adb8b2f623..000000000000 --- a/dev-qt/qtgui/files/qtgui-5.9.4-libinput-pixeldelta.patch +++ /dev/null @@ -1,68 +0,0 @@ -From d196036024697a75868c1f1626525710495ca428 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen <allan.jensen@qt.io> -Date: Thu, 23 Nov 2017 14:25:04 +0100 -Subject: [PATCH] Avoid providing bad pixelDeltas on X11 - -With libinput we now get a hardcoded resolution that is unrelated to -the hardware. So avoid using that as a real pixel delta and document -pixel deltas as being driver specific and unreliable on X11. - -Task-number: QTBUG-59261 -Change-Id: I9fe86d80e7ccd290ed2e4091d7eafa52cb537d34 -Reviewed-by: David Edmundson <davidedmundson@kde.org> -Reviewed-by: Marco Martin <mart@kde.org> -Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> ---- - src/gui/kernel/qevent.cpp | 1 + - src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 14 ++++++++------ - 2 files changed, 9 insertions(+), 6 deletions(-) - -diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp -index 06d52aa..c68f9af 100644 ---- a/src/gui/kernel/qevent.cpp -+++ b/src/gui/kernel/qevent.cpp -@@ -971,6 +971,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, - \li scrolling is about to begin, but the distance did not yet change (Qt::ScrollBegin), - \li or scrolling has ended and the distance did not change anymore (Qt::ScrollEnd). - \endlist -+ \note On X11 this value is driver specific and unreliable, use angleDelta() instead - */ - - /*! -diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -index d1d97af..94f543f 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -@@ -953,10 +953,12 @@ void QXcbConnection::xi2HandleScrollEvent(void *event, ScrollingDevice &scrollin - double delta = scrollingDevice.lastScrollPosition.y() - value; - scrollingDevice.lastScrollPosition.setY(value); - angleDelta.setY((delta / scrollingDevice.verticalIncrement) * 120); -- // We do not set "pixel" delta if it is only measured in ticks. -- if (scrollingDevice.verticalIncrement > 1) -+ // With most drivers the increment is 1 for wheels. -+ // For libinput it is hardcoded to a useless 15. -+ // For a proper touchpad driver it should be in the same order of magnitude as 120 -+ if (scrollingDevice.verticalIncrement > 15) - rawDelta.setY(delta); -- else if (scrollingDevice.verticalIncrement < -1) -+ else if (scrollingDevice.verticalIncrement < -15) - rawDelta.setY(-delta); - } - } -@@ -965,10 +967,10 @@ void QXcbConnection::xi2HandleScrollEvent(void *event, ScrollingDevice &scrollin - double delta = scrollingDevice.lastScrollPosition.x() - value; - scrollingDevice.lastScrollPosition.setX(value); - angleDelta.setX((delta / scrollingDevice.horizontalIncrement) * 120); -- // We do not set "pixel" delta if it is only measured in ticks. -- if (scrollingDevice.horizontalIncrement > 1) -+ // See comment under vertical -+ if (scrollingDevice.horizontalIncrement > 15) - rawDelta.setX(delta); -- else if (scrollingDevice.horizontalIncrement < -1) -+ else if (scrollingDevice.horizontalIncrement < -15) - rawDelta.setX(-delta); - } - } --- -2.7.4 - diff --git a/dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch b/dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch deleted file mode 100644 index 2a447414c215..000000000000 --- a/dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch +++ /dev/null @@ -1,87 +0,0 @@ -From b63aeba4a88088c7de61c1664a510c02d38ade84 Mon Sep 17 00:00:00 2001 -From: Antonio Larrosa <alarrosa@suse.com> -Date: Fri, 16 Feb 2018 13:18:42 +0100 -Subject: [PATCH] opengl: Bail if cached shader fails to load - -QOpenGLProgramBinaryCache::setProgramBinary() should check -GL_LINK_STATUS after glProgramBinary(), but doesn't. - -In practice, this means that SDDM is a white screen, and KDE is just -a gray task bar. - -So far, Qt tries to check this using its internal ::link() function. -But in case the cached binary fails to load, Qt currently attempts to -link the inexistent program, resulting in a zero-length, fixed -pipeline shader. - -Checking this already in ::setProgramBinary() makes the call to -::link() superfluous, so we remove that as well. - -Done-with: Max Staudt <mstaudt@suse.com> -Done-with: Michal Srb <msrb@suse.com> -Done-with: Fabian Vogt <fvogt@suse.de> -Task-number: QTBUG-66420 -Change-Id: Iabb51d0eb2c0c16bde696efff623e57d15f28d82 -Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> -Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> -(cherry picked from commit fa091640134b3ff99a9eb92df8286d15203122bf) ---- - src/gui/opengl/qopenglprogrambinarycache.cpp | 20 ++++++++++++++++++-- - src/gui/opengl/qopenglshaderprogram.cpp | 8 +------- - 2 files changed, 19 insertions(+), 9 deletions(-) - -diff --git a/src/gui/opengl/qopenglprogrambinarycache.cpp b/src/gui/opengl/qopenglprogrambinarycache.cpp -index 06373e1..d16173d 100644 ---- a/src/gui/opengl/qopenglprogrambinarycache.cpp -+++ b/src/gui/opengl/qopenglprogrambinarycache.cpp -@@ -161,10 +161,26 @@ bool QOpenGLProgramBinaryCache::setProgramBinary(uint programId, uint blobFormat - QOpenGLExtraFunctions *funcs = QOpenGLContext::currentContext()->extraFunctions(); - while (funcs->glGetError() != GL_NO_ERROR) { } - funcs->glProgramBinary(programId, blobFormat, p, blobSize); -- int err = funcs->glGetError(); -+ -+ GLenum err = funcs->glGetError(); -+ if (err != GL_NO_ERROR) { -+ qCDebug(DBG_SHADER_CACHE, "Program binary failed to load for program %u, size %d, " -+ "format 0x%x, err = 0x%x", -+ programId, blobSize, blobFormat, err); -+ return false; -+ } -+ GLint linkStatus = 0; -+ funcs->glGetProgramiv(programId, GL_LINK_STATUS, &linkStatus); -+ if (linkStatus != GL_TRUE) { -+ qCDebug(DBG_SHADER_CACHE, "Program binary failed to load for program %u, size %d, " -+ "format 0x%x, linkStatus = 0x%x, err = 0x%x", -+ programId, blobSize, blobFormat, linkStatus, err); -+ return false; -+ } -+ - qCDebug(DBG_SHADER_CACHE, "Program binary set for program %u, size %d, format 0x%x, err = 0x%x", - programId, blobSize, blobFormat, err); -- return err == 0; -+ return true; - } - - #ifdef Q_OS_UNIX -diff --git a/src/gui/opengl/qopenglshaderprogram.cpp b/src/gui/opengl/qopenglshaderprogram.cpp -index cc8af16..3b82bac 100644 ---- a/src/gui/opengl/qopenglshaderprogram.cpp -+++ b/src/gui/opengl/qopenglshaderprogram.cpp -@@ -3824,13 +3824,7 @@ bool QOpenGLShaderProgramPrivate::linkBinary() - bool needsCompile = true; - if (binCache.load(cacheKey, q->programId())) { - qCDebug(DBG_SHADER_CACHE, "Program binary received from cache"); -- linkBinaryRecursion = true; -- bool ok = q->link(); -- linkBinaryRecursion = false; -- if (ok) -- needsCompile = false; -- else -- qCDebug(DBG_SHADER_CACHE, "Link failed after glProgramBinary"); -+ needsCompile = false; - } - - bool needsSave = false; --- -2.7.4 - diff --git a/dev-qt/qtgui/files/qtgui-5.9.4-qsimpledrag.patch b/dev-qt/qtgui/files/qtgui-5.9.4-qsimpledrag.patch deleted file mode 100644 index 60d2ec424f47..000000000000 --- a/dev-qt/qtgui/files/qtgui-5.9.4-qsimpledrag.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 4a7771f206d4b29be549d3827c36a46679d90de6 Mon Sep 17 00:00:00 2001 -From: Eike Hein <hein@kde.org> -Date: Sun, 7 Jan 2018 13:02:01 +0900 -Subject: [PATCH] QSimpleDrag: Fix mouse release coords for delayed event - transmission - -On platforms such as XCB, the drag cursor pixmap is shown via a window -(a QShapedPixmapWindow) under the cursor. - -The mouse button release event at the end of the drag is received in -this QXcbWindow, but intercepted by an event filter that QSimpleDrag -installs on the QApplication. It then resends it unmodified(!) after -the drag has ended and the drag pixmap window destroyed, causing it to -be delivered to the new top-level window. - -The local coordinates in the unmodified QMouseEvent are local to the -drag pixmap window and don't match the window it is delayed-transmitted -to. - -This ends up having fatal, user-visible effects particularly in Qt -Quick: QQuickWindow synthesizes a hover event once per frame using -the last received mouse coordinates, here: the release posted by -QSimpleDrag. This is done to update the hover event state for items -under the cursor when the mouse hasn't moved (e.g. QQuickMouseArea:: -containsMouse). The bogus event coordinates in the release event then -usually end up causing an item near the top-left of the QQuickWindow -to assume it is hovered (because drag pixmap windows tend to be small), -even when the mouse cursor is actually far away from it at the end of -the drag. - -This shows up e.g. in the Plasma 5 desktop, where dragging an icon -on the desktop will cause the icon at the top-left of the screen (if -any) to switch to hovered state, as the release coordinates on the -drag pixmap window (showing a dragged icon) fall into the geometry -of the top-left icon. - -QSimpleDrag contains a topLevelAt() function to find the top-level -window under the global cursor coordinates that is not the drag -pixmap window. This is used by the drop event delivery code. - -This patch uses this function to find the relevant top-level window, -then asks it to map the global cusor coordinates to its local -coordinate system, then synthesizes a new QMouseEvent with local -coordinates computed in this fashion. As a result the window now -gets a release event with coordinates that make sense and are -correct. - -Task-number: QTBUG-66103 -Change-Id: I04ebe6ccd4a991fdd4b540ff0227973ea8896a9d -Reviewed-by: Eike Hein <hein@kde.org> -Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> ---- - src/gui/kernel/qsimpledrag.cpp | 32 +++++++++++++++++++++++++++----- - src/gui/kernel/qsimpledrag_p.h | 6 +++--- - 2 files changed, 30 insertions(+), 8 deletions(-) - -diff --git a/src/gui/kernel/qsimpledrag.cpp b/src/gui/kernel/qsimpledrag.cpp -index a1e25dc..87d3ba5 100644 ---- a/src/gui/kernel/qsimpledrag.cpp -+++ b/src/gui/kernel/qsimpledrag.cpp -@@ -58,6 +58,7 @@ - - #include <QtCore/QEventLoop> - #include <QtCore/QDebug> -+#include <QtCore/QLoggingCategory> - - #include <private/qguiapplication_p.h> - #include <private/qdnd_p.h> -@@ -69,6 +70,8 @@ QT_BEGIN_NAMESPACE - - #ifndef QT_NO_DRAGANDDROP - -+Q_LOGGING_CATEGORY(lcDnd, "qt.gui.dnd") -+ - static QWindow* topLevelAt(const QPoint &pos) - { - QWindowList list = QGuiApplication::topLevelWindows(); -@@ -94,10 +97,10 @@ static QWindow* topLevelAt(const QPoint &pos) - */ - - QBasicDrag::QBasicDrag() : -- m_restoreCursor(false), m_eventLoop(0), -+ m_current_window(nullptr), m_restoreCursor(false), m_eventLoop(nullptr), - m_executed_drop_action(Qt::IgnoreAction), m_can_drop(false), -- m_drag(0), m_drag_icon_window(0), m_useCompositing(true), -- m_screen(Q_NULLPTR) -+ m_drag(nullptr), m_drag_icon_window(nullptr), m_useCompositing(true), -+ m_screen(nullptr) - { - } - -@@ -161,6 +164,7 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e) - return true; // Eat all mouse move events - } - case QEvent::MouseButtonRelease: -+ { - disableEventFilter(); - if (canDrop()) { - QPoint nativePosition = getNativeMousePos(e, m_drag_icon_window); -@@ -169,8 +173,25 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e) - cancel(); - } - exitDndEventLoop(); -- QCoreApplication::postEvent(o, new QMouseEvent(*static_cast<QMouseEvent *>(e))); -+ -+ // If a QShapedPixmapWindow (drag feedback) is being dragged along, the -+ // mouse event's localPos() will be relative to that, which is useless. -+ // We want a position relative to the window where the drag ends, if possible (?). -+ // If there is no such window (belonging to this Qt application), -+ // make the event relative to the window where the drag started. (QTBUG-66103) -+ const QMouseEvent *release = static_cast<QMouseEvent *>(e); -+ const QWindow *releaseWindow = topLevelAt(release->globalPos()); -+ qCDebug(lcDnd) << "mouse released over" << releaseWindow << "after drag from" << m_current_window << "globalPos" << release->globalPos(); -+ if (!releaseWindow) -+ releaseWindow = m_current_window; -+ QPoint releaseWindowPos = (releaseWindow ? releaseWindow->mapFromGlobal(release->globalPos()) : release->globalPos()); -+ QMouseEvent *newRelease = new QMouseEvent(release->type(), -+ releaseWindowPos, releaseWindowPos, release->screenPos(), -+ release->button(), release->buttons(), -+ release->modifiers(), release->source()); -+ QCoreApplication::postEvent(o, newRelease); - return true; // defer mouse release events until drag event loop has returned -+ } - case QEvent::MouseButtonDblClick: - case QEvent::Wheel: - return true; -@@ -349,7 +370,7 @@ static inline QPoint fromNativeGlobalPixels(const QPoint &point) - into account. - */ - --QSimpleDrag::QSimpleDrag() : m_current_window(0) -+QSimpleDrag::QSimpleDrag() - { - } - -@@ -373,6 +394,7 @@ void QSimpleDrag::startDrag() - updateCursor(Qt::IgnoreAction); - } - setExecutedDropAction(Qt::IgnoreAction); -+ qCDebug(lcDnd) << "drag began from" << m_current_window<< "cursor pos" << QCursor::pos() << "can drop?" << canDrop(); - } - - void QSimpleDrag::cancel() -diff --git a/src/gui/kernel/qsimpledrag_p.h b/src/gui/kernel/qsimpledrag_p.h -index 0b8a0bc..bbd7f7f 100644 ---- a/src/gui/kernel/qsimpledrag_p.h -+++ b/src/gui/kernel/qsimpledrag_p.h -@@ -105,6 +105,9 @@ protected: - - QDrag *drag() const { return m_drag; } - -+protected: -+ QWindow *m_current_window; -+ - private: - void enableEventFilter(); - void disableEventFilter(); -@@ -132,9 +135,6 @@ protected: - virtual void cancel() Q_DECL_OVERRIDE; - virtual void move(const QPoint &globalPos) Q_DECL_OVERRIDE; - virtual void drop(const QPoint &globalPos) Q_DECL_OVERRIDE; -- --private: -- QWindow *m_current_window; - }; - - #endif // QT_NO_DRAGANDDROP --- -2.7.4 - |