[SCM] qtbase packaging branch, kubuntu_unstable, updated. debian/5.5.0+dfsg-4-47-gc387b32

Rohan Garg rohangarg-guest at moszumanska.debian.org
Tue Sep 8 13:43:21 UTC 2015


Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtbase.git;a=commitdiff;h=eb1f862

The following commit has been merged in the kubuntu_unstable branch:
commit eb1f8627754df4008d3531929c254005fbeb7143
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date:   Fri May 22 11:13:31 2015 +0000

    Add cherry-picked/upstream patches.
---
 ...typo-in-the-Gujarati-openType-identififer.patch | 30 +++++++++
 debian/patches/load_testability_from_env_var.patch | 17 +++++
 debian/patches/make-sure-there-s-a-scene.patch     | 68 +++++++++++++++++++
 debian/patches/series                              |  9 +++
 ...e-SelectionWindowDestroy-in-QXcbClipboard.patch | 36 ++++++++++
 ...nm-Registered-delayed-in-constructor-othe.patch | 37 ++++++++++
 ...te-mouse-buttons-from-MotionNotify-events.patch | 78 ++++++++++++++++++++++
 .../patches/upstream_xcb_use_themed_cursor.patch   | 47 +++++++++++++
 8 files changed, 322 insertions(+)

diff --git a/debian/patches/Correct-typo-in-the-Gujarati-openType-identififer.patch b/debian/patches/Correct-typo-in-the-Gujarati-openType-identififer.patch
new file mode 100644
index 0000000..08646c1
--- /dev/null
+++ b/debian/patches/Correct-typo-in-the-Gujarati-openType-identififer.patch
@@ -0,0 +1,30 @@
+From ef22739f47857c185f63f87966df79d377c89577 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning at theqtcompany.com>
+Date: Mon, 23 Feb 2015 11:05:07 +0100
+Subject: [PATCH] Correct typo in the Gujarati openType identififer.
+
+Based on testing by Paresh Adhia.
+
+Task-number: QTBUG-44568
+Change-Id: I0a84710bcda40f65b38c3b18f4d9b34f654e4c22
+Reviewed-by: Konstantin Ritt <ritt.ks at gmail.com>
+---
+ src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+index 17e9d07..bd22a8f 100644
+--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
++++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+@@ -279,7 +279,7 @@ static const char *openType[] = {
+     "deva",  // Devanagari
+     "beng",  // Bengali
+     "guru",  // Gurmukhi
+-    "gurj",  // Gujarati
++    "gujr",  // Gujarati
+     "orya",  // Oriya
+     "taml",  // Tamil
+     "telu",  // Telugu
+-- 
+2.1.4
+
diff --git a/debian/patches/load_testability_from_env_var.patch b/debian/patches/load_testability_from_env_var.patch
new file mode 100644
index 0000000..77df934
--- /dev/null
+++ b/debian/patches/load_testability_from_env_var.patch
@@ -0,0 +1,17 @@
+Description: load testability from environment variable
+Author: Thomi Richards <thomi.richards at canonical.com>
+Forwarded: https://bugreports.qt-project.org/browse/QTBUG-32974
+
+diff -urN qtbase-opensource-src-5.0.2+dfsg1.old/src/widgets/kernel/qapplication.cpp qtbase-opensource-src-5.0.2+dfsg1/src/widgets/kernel/qapplication.cpp
+--- qtbase-opensource-src-5.0.2+dfsg1.old/src/gui/kernel/qguiapplication.cpp	2013-04-09 03:11:06.000000000 +0300
++++ qtbase-opensource-src-5.0.2+dfsg1/src/gui/kernel/qguiapplication.cpp	2013-08-08 10:07:56.982957641 +0300
+@@ -1253,6 +1253,9 @@
+         argv[j] = 0;
+         argc = j;
+     }
++
++    if (qgetenv("QT_LOAD_TESTABILITY").toInt() > 0)
++        loadTestability = true;
+ 
+     // Load environment exported generic plugins
+     foreach (const QByteArray &plugin, qgetenv("QT_QPA_GENERIC_PLUGINS").split(','))
diff --git a/debian/patches/make-sure-there-s-a-scene.patch b/debian/patches/make-sure-there-s-a-scene.patch
new file mode 100644
index 0000000..7c0bb84
--- /dev/null
+++ b/debian/patches/make-sure-there-s-a-scene.patch
@@ -0,0 +1,68 @@
+
+Parent: 732c9948 (work around MSVC level 4 warning)
+Author: Albert Astals Cid <albert.astals at canonical.com>
+AuthorDate: 2015-02-17 09:53:27 +0100
+Commit: Friedemann Kleint <Friedemann.Kleint at theqtcompany.com>
+CommitDate: 2015-02-17 13:47:16 +0000
+
+Make sure there's a scene before using it
+
+Fixes crash hovering links in quassel
+
+Task-number: QTBUG-44509
+Change-Id: I77d8d9118ad185ed70a46e91445e2960200e562b
+Reviewed-by: Michael Brüning <michael.bruning at theqtcompany.com>
+Reviewed-by: Frederik Gladhorn <frederik.gladhorn at theqtcompany.com>
+Reviewed-by: Marc Mutz <marc.mutz at kdab.com>
+
+diff a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
+Index: qtbase-opensource-src-5.4.0+dfsg/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+===================================================================
+--- qtbase-opensource-src-5.4.0+dfsg.orig/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp	2015-02-22 02:36:23.084912199 -0500
++++ qtbase-opensource-src-5.4.0+dfsg/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp	2015-02-22 02:36:23.084912199 -0500
+@@ -175,6 +175,7 @@
+     void windowFrameMargins();
+     void QTBUG_6986_sendMouseEventToAlienWidget();
+     void mapToGlobal();
++    void mapToGlobalWithoutScene();
+ };
+ 
+ // Subclass that exposes the protected functions.
+@@ -3687,5 +3688,15 @@
+                         .arg(embeddedCenterGlobal.x()).arg(embeddedCenterGlobal.y())));
+ }
+ 
++void tst_QGraphicsProxyWidget::mapToGlobalWithoutScene() // QTBUG-44509
++{
++ QGraphicsProxyWidget proxyWidget;
++ QWidget *embeddedWidget = new QWidget;
++ proxyWidget.setWidget(embeddedWidget);
++const QPoint localPos(0, 0);
++ const QPoint globalPos = embeddedWidget->mapToGlobal(localPos);
++ QCOMPARE(embeddedWidget->mapFromGlobal(globalPos), localPos);
++}
++
+ QTEST_MAIN(tst_QGraphicsProxyWidget)
+ #include "tst_qgraphicsproxywidget.moc"
+Index: qtbase-opensource-src-5.4.0+dfsg/src/widgets/kernel/qwidget.cpp
+===================================================================
+--- qtbase-opensource-src-5.4.0+dfsg.orig/src/widgets/kernel/qwidget.cpp	2015-02-22 02:36:23.084912199 -0500
++++ qtbase-opensource-src-5.4.0+dfsg/src/widgets/kernel/qwidget.cpp	2015-02-22 02:38:15.200916922 -0500
+@@ -12255,7 +12255,7 @@
+ {
+ #ifndef QT_NO_GRAPHICSVIEW
+     Q_D(const QWidget);
+-    if (d->extra && d->extra->proxyWidget) {
++    if (d->extra && d->extra->proxyWidget && d->extra->proxyWidget->scene()) {
+         const QList <QGraphicsView *> views = d->extra->proxyWidget->scene()->views();
+         if (!views.isEmpty()) {
+             const QPointF scenePos = d->extra->proxyWidget->mapToScene(pos);
+@@ -12290,7 +12290,7 @@
+ {
+ #ifndef QT_NO_GRAPHICSVIEW
+     Q_D(const QWidget);
+-    if (d->extra && d->extra->proxyWidget) {
++    if (d->extra && d->extra->proxyWidget && d->extra->proxyWidget->scene()) {
+         const QList <QGraphicsView *> views = d->extra->proxyWidget->scene()->views();
+         if (!views.isEmpty()) {
+             const QPoint viewPortPos = views.first()->viewport()->mapFromGlobal(pos);
diff --git a/debian/patches/series b/debian/patches/series
index 57f15e6..f2decb0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,8 +11,17 @@ make_qglobal_h_complain_if_you_use_fpie.patch
 fixes_crash_in_bmp_and_ico_image_decoders.patch
 fixes_crash_in_gif_image_decoder.patch
 tst_QNetworkDiskCache-Stop-using-actual-web-servers.patch
+Correct-typo-in-the-Gujarati-openType-identififer.patch
+load_testability_from_env_var.patch
 
 # Debian specific.
 revert_upstream_bsymbolic_change.patch
 no_htmlinfo_example.diff
 remove_privacy_breachs.diff
+
+# Cherrypicked - will be in 5.4.2
+make-sure-there-s-a-scene.patch
+upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch
+upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch
+upstream_Call-ofono-nm-Registered-delayed-in-constructor-othe.patch
+upstream_xcb_use_themed_cursor.patch
diff --git a/debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch b/debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch
new file mode 100644
index 0000000..34af1d3
--- /dev/null
+++ b/debian/patches/upstream-gerrit_Handle-SelectionWindowDestroy-in-QXcbClipboard.patch
@@ -0,0 +1,36 @@
+From a95b2e88603ecd18d54c384869ff1281e569f556 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <mgraesslin at kde.org>
+Date: Fri, 6 Feb 2015 07:34:43 +0100
+Subject: [PATCH] Handle SelectionWindowDestroy in QXcbClipboard
+
+This change is related to 6a7ee92b3958e3a3ebc16be15f8bd34217ec7bd2
+which added handling for SelectionClientClose. Further testing showed
+that with e.g. Qt 4 applications the SelectionClientClose is not
+emitted, but the selection window seems to be destroyed before the
+client is destroyed.
+
+Fur a destroyed selection window the same applies: the clipboard
+content is no longer valid and we should emit the changed signal.
+
+Change-Id: Id3778a28b9f5601bf2c6e0106981316e0efa6e7c
+---
+ src/plugins/platforms/xcb/qxcbclipboard.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
+index f56a29d..4b6caa9 100644
+--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
++++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
+@@ -742,7 +742,8 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve
+             m_xClipboard[mode]->reset();
+         }
+         emitChanged(mode);
+-    } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE)
++    } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE ||
++               event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY)
+         emitChanged(mode);
+ }
+ 
+-- 
+2.1.4
+
diff --git a/debian/patches/upstream_Call-ofono-nm-Registered-delayed-in-constructor-othe.patch b/debian/patches/upstream_Call-ofono-nm-Registered-delayed-in-constructor-othe.patch
new file mode 100644
index 0000000..86e8e32
--- /dev/null
+++ b/debian/patches/upstream_Call-ofono-nm-Registered-delayed-in-constructor-othe.patch
@@ -0,0 +1,37 @@
+From 8d6341a721d07e3cc30032bcc89f7e25cb00b9eb Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid at kde.org>
+Date: Mon, 16 Feb 2015 22:53:02 +0100
+Subject: [PATCH] Call [ofono|nm]Registered delayed in constructor otherwise
+ signals will be lost
+
+If we call them just in the constructor all the signals they sent
+out can't be connected and will be lost, particularly this means
+the QNetworkConfigurationManager doesn't see my ethernet connection
+and thus thinks i'm not online
+
+Change-Id: I1480f76338d6ae4fbed676f9fa40ada18ea431ad
+Reviewed-by: Alex Blasche <alexander.blasche at theqtcompany.com>
+---
+ src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
+index f52b9d4..0378ac7 100644
+--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
++++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
+@@ -80,10 +80,10 @@ QNetworkManagerEngine::QNetworkManagerEngine(QObject *parent)
+             this, SLOT(ofonoUnRegistered(QString)));
+ 
+     if (QDBusConnection::systemBus().interface()->isServiceRegistered("org.ofono"))
+-        ofonoRegistered();
++        QMetaObject::invokeMethod(this, "ofonoRegistered", Qt::QueuedConnection);
+ 
+     if (QDBusConnection::systemBus().interface()->isServiceRegistered(NM_DBUS_SERVICE))
+-        nmRegistered();
++        QMetaObject::invokeMethod(this, "nmRegistered", Qt::QueuedConnection);
+ }
+ 
+ QNetworkManagerEngine::~QNetworkManagerEngine()
+-- 
+2.1.4
+
diff --git a/debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch b/debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch
new file mode 100644
index 0000000..446cef8
--- /dev/null
+++ b/debian/patches/upstream_xcb-Update-mouse-buttons-from-MotionNotify-events.patch
@@ -0,0 +1,78 @@
+From 76de1ac0a4cd384f608a14b5d77a8cf3ef1ec868 Mon Sep 17 00:00:00 2001
+From: Alexander Volkov <a.volkov at rusbitech.ru>
+Date: Mon, 9 Feb 2015 17:19:14 +0300
+Subject: [PATCH] xcb: Update mouse buttons from MotionNotify events
+
+We don't receive ButtonRelease event after closing a popup
+by clicking outside of the client area. Thus the internal
+state of mouse buttons in the xcb plugin becomes outdated
+until we receive ButtonRelease event.
+
+This commit updates the internal state of mouse buttons
+from MotionNotify events. So when a user will move a mouse
+on the client area, the xcb plugin will send a mouse event
+with updated buttons to Qt Gui and QGuiApplication will
+detect the following mouse events correctly.
+
+Task-number: QTBUG-32609
+Task-number: QTBUG-35065
+Task-number: QTBUG-43776
+Task-number: QTBUG-44166
+Task-number: QTBUG-44231
+Change-Id: Ica334dfbf04f7ef81db86b25262328fe5da11808
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen at theqtcompany.com>
+Reviewed-by: Shawn Rutledge <shawn.rutledge at digia.com>
+Reviewed-by: Gatis Paeglis <gatis.paeglis at digia.com>
+---
+ src/plugins/platforms/xcb/qxcbconnection.cpp | 14 ++++++++++----
+ src/plugins/platforms/xcb/qxcbconnection.h   |  1 +
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
+index 5510c3b..77e4601 100644
+--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
++++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
+@@ -818,6 +818,15 @@ void QXcbConnection::handleButtonRelease(xcb_generic_event_t *ev)
+     qCDebug(lcQpaXInput, "xcb: released mouse button %d, button state %X", event->detail, static_cast<unsigned int>(m_buttons));
+ }
+ 
++void QXcbConnection::handleMotionNotify(xcb_generic_event_t *ev)
++{
++    xcb_motion_notify_event_t *event = (xcb_motion_notify_event_t *)ev;
++
++    m_buttons = (m_buttons & ~0x7) | translateMouseButtons(event->state);
++    if (Q_UNLIKELY(lcQpaXInput().isDebugEnabled()))
++        qDebug("xcb: moved mouse to %4d, %4d; button state %X", event->event_x, event->event_y, static_cast<unsigned int>(m_buttons));
++}
++
+ #ifndef QT_NO_XKB
+ namespace {
+     typedef union {
+@@ -868,11 +877,8 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
+             handleButtonRelease(event);
+             HANDLE_PLATFORM_WINDOW_EVENT(xcb_button_release_event_t, event, handleButtonReleaseEvent);
+         case XCB_MOTION_NOTIFY:
+-            if (Q_UNLIKELY(lcQpaXInput().isDebugEnabled())) {
+-                xcb_motion_notify_event_t *mev = (xcb_motion_notify_event_t *)event;
+-                qDebug("xcb: moved mouse to %4d, %4d; button state %X", mev->event_x, mev->event_y, static_cast<unsigned int>(m_buttons));
+-            }
+             m_keyboard->updateXKBStateFromCore(((xcb_motion_notify_event_t *)event)->state);
++            handleMotionNotify(event);
+             HANDLE_PLATFORM_WINDOW_EVENT(xcb_motion_notify_event_t, event, handleMotionNotifyEvent);
+         case XCB_CONFIGURE_NOTIFY:
+             HANDLE_PLATFORM_WINDOW_EVENT(xcb_configure_notify_event_t, event, handleConfigureNotifyEvent);
+diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
+index 4d05965..9a73006 100644
+--- a/src/plugins/platforms/xcb/qxcbconnection.h
++++ b/src/plugins/platforms/xcb/qxcbconnection.h
+@@ -496,6 +496,7 @@ private:
+     void updateScreens();
+     void handleButtonPress(xcb_generic_event_t *event);
+     void handleButtonRelease(xcb_generic_event_t *event);
++    void handleMotionNotify(xcb_generic_event_t *event);
+ 
+     bool m_xi2Enabled;
+     int m_xi2Minor;
+-- 
+2.1.4
+
diff --git a/debian/patches/upstream_xcb_use_themed_cursor.patch b/debian/patches/upstream_xcb_use_themed_cursor.patch
new file mode 100644
index 0000000..cb15717
--- /dev/null
+++ b/debian/patches/upstream_xcb_use_themed_cursor.patch
@@ -0,0 +1,47 @@
+From c7b003ea3b8b4b7124d4971df7d910f2bc3fc4fa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B8rgen=20Lind?= <jorgen.lind at theqtcompany.com>
+Date: Mon, 30 Mar 2015 12:03:30 +0200
+Subject: [PATCH 03/16] Use Xlib to resolve font cursor if possible
+
+before fallingback to uploading a bitmap cursor
+
+Task-number: QTBUG-30016
+Change-Id: I53eeda6bb5f6cab66e3bc10a2e5382ce55cc1bab
+Reviewed-by: Laszlo Agocs <laszlo.agocs at theqtcompany.com>
+---
+ src/plugins/platforms/xcb/qxcbcursor.cpp | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
+index e3a04c1..8dd27ec 100644
+--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
++++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
+@@ -53,6 +53,12 @@ typedef int (*PtrXcursorLibrarySetTheme)(void *, const char *);
+ typedef int (*PtrXcursorLibraryGetDefaultSize)(void *);
+ 
+ #ifdef XCB_USE_XLIB
++#include <X11/Xlib.h>
++enum {
++    XCursorShape = CursorShape
++};
++#undef CursorShape
++
+ static PtrXcursorLibraryLoadCursor ptrXcursorLibraryLoadCursor = 0;
+ static PtrXcursorLibraryGetTheme ptrXcursorLibraryGetTheme = 0;
+ static PtrXcursorLibrarySetTheme ptrXcursorLibrarySetTheme = 0;
+@@ -552,6 +558,12 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
+     }
+     if (cursor)
+         return cursor;
++    if (!cursor && cursorId) {
++        cursor = XCreateFontCursor(DISPLAY_FROM_XCB(this), cursorId);
++        if (cursor)
++            return cursor;
++    }
++
+ #endif
+ 
+     // Non-standard X11 cursors are created from bitmaps
+-- 
+2.1.4
+

-- 
qtbase packaging



More information about the pkg-kde-commits mailing list