qt5base: extend patch to prevent SEGV when hiding cursor is desired
[feed/video.git] / frameworks / qt5base / patches / 005-fix-segv-if-no-cursor.patch
1 From a51a71ba6b08fcd761d5b0547bcd5d65f341d837 Mon Sep 17 00:00:00 2001
2 From: Mirko Vogt <mirko-qt@nanl.de>
3 Date: Mon, 27 Nov 2017 20:25:38 +0100
4 Subject: [PATCH 1/2] QFbCursor::pointerEvent(): Fix SEGV if
5 QT_QPA_FB_HIDECURSOR is set
6
7 getCurrentRect() accesses mCursorImage.image() which is NULL in case of
8 QT_QPA_FB_HIDECURSOR=1.
9 Avoid respective calls in pointerEvent() by returning early in such
10 case.
11
12 Signed-off-by: Mirko Vogt <mirko-qt@nanl.de>
13 ---
14 src/platformsupport/fbconvenience/qfbcursor.cpp | 2 ++
15 1 file changed, 2 insertions(+)
16
17 diff --git a/src/platformsupport/fbconvenience/qfbcursor.cpp b/src/platformsupport/fbconvenience/qfbcursor.cpp
18 index 7daf3f4d0c..c7b1a71c04 100644
19 --- a/src/platformsupport/fbconvenience/qfbcursor.cpp
20 +++ b/src/platformsupport/fbconvenience/qfbcursor.cpp
21 --- a/src/platformsupport/fbconvenience/qfbcursor.cpp
22 +++ b/src/platformsupport/fbconvenience/qfbcursor.cpp
23 @@ -112,6 +112,8 @@ void QFbCursor::pointerEvent(const QMouseEvent &e)
24 if (e.type() != QEvent::MouseMove)
25 return;
26 m_pos = e.screenPos().toPoint();
27 + if (!mVisible)
28 + return;
29 mCurrentRect = getCurrentRect();
30 if (mOnScreen || mScreen->geometry().intersects(mCurrentRect.translated(mScreen->geometry().topLeft())))
31 setDirty();
32 @@ -165,6 +167,9 @@ void QFbCursor::setCursor(const uchar *data, const uchar *mask, int width, int h
33 #ifndef QT_NO_CURSOR
34 void QFbCursor::changeCursor(QCursor * widgetCursor, QWindow *window)
35 {
36 + if (!mVisible)
37 + return;
38 +
39 Q_UNUSED(window);
40 const Qt::CursorShape shape = widgetCursor ? widgetCursor->shape() : Qt::ArrowCursor;
41