summaryrefslogtreecommitdiff
path: root/dev-qt/qtgui/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
commit3f71901f8c228f4de570abed1831ce3ee425343e (patch)
treea2dcd300d05ef8a2ec275b44a92a9d85bd3baa24 /dev-qt/qtgui/files
parent12bb627384ddfd47382b9f1b6464481a58d01ebb (diff)
gentoo resync 08.09.2018
Diffstat (limited to 'dev-qt/qtgui/files')
-rw-r--r--dev-qt/qtgui/files/qtgui-5.9.4-libinput-pixeldelta.patch68
-rw-r--r--dev-qt/qtgui/files/qtgui-5.9.4-opengl.patch87
-rw-r--r--dev-qt/qtgui/files/qtgui-5.9.4-qsimpledrag.patch170
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
-