diff --git a/extra/qt5/PKGBUILD b/extra/qt5/PKGBUILD index 50db04d63..811bcf3e2 100644 --- a/extra/qt5/PKGBUILD +++ b/extra/qt5/PKGBUILD @@ -12,6 +12,8 @@ # - drop webengine package and skip in configure # - patch for AArch64 support in qtwebkit +highmem=1 + pkgbase=qt5 pkgname=('qt5-3d' 'qt5-base' @@ -38,8 +40,8 @@ pkgname=('qt5-3d' 'qt5-websockets' 'qt5-x11extras' 'qt5-xmlpatterns') -pkgver=5.5.0 -pkgrel=2 +pkgver=5.5.1 +pkgrel=1 arch=('i686' 'x86_64') url='http://www.qt.io/developers' license=('GPL3' 'LGPL' 'FDL' 'custom') @@ -54,9 +56,6 @@ groups=('qt' 'qt5') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgver}/single/${_pkgfqn}.tar.xz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qdbusviewer.desktop' - 'keypad-shortcuts.patch' - 'ae51e360f986698eaf41fdb38f8a878a50f69be1.patch' - 'b0b08cc0e4e38504d6b833702f7477aee4e2a192.patch' 'qt5webkit-0002-Fix-QtWebKit-build-on-ARM-softfp.patch' '0001-Add-ARM-64-support.patch') md5sums=('65d5282f3dee0336da9ed1f77148952f' @@ -64,21 +63,11 @@ md5sums=('65d5282f3dee0336da9ed1f77148952f' '76e150b20178d2d43801f7367232e5f7' '188da8f4c87316e730ebf1c6217bf5a0' '322b419b16c75d4de0ee7ad0a246caa1' - '665439088fc7de52a97455c5eaf87889' - '4587b9a9438a8e86235a1c1b26dce1e8' - 'cea675fa4b394653e3bc9f80f9edf4b0' 'd55ad1f1c90725834b44eada5db4e401') prepare() { cd ${_pkgfqn} - # https://bugs.archlinux.org/task/44676 - (cd qtbase; patch -p1 -i "$srcdir/keypad-shortcuts.patch") - - # https://bugs.archlinux.org/task/43986 - (cd qtbase; patch -p1 -i "$srcdir/ae51e360f986698eaf41fdb38f8a878a50f69be1.patch" - patch -p1 -i "$srcdir/b0b08cc0e4e38504d6b833702f7477aee4e2a192.patch") - # Build qmake using Arch {C,LD}FLAGS # This also sets default {C,CXX,LD}FLAGS for projects built using qmake sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \ diff --git a/extra/qt5/ae51e360f986698eaf41fdb38f8a878a50f69be1.patch b/extra/qt5/ae51e360f986698eaf41fdb38f8a878a50f69be1.patch deleted file mode 100644 index 38aea2471..000000000 --- a/extra/qt5/ae51e360f986698eaf41fdb38f8a878a50f69be1.patch +++ /dev/null @@ -1,56 +0,0 @@ -From ae51e360f986698eaf41fdb38f8a878a50f69be1 Mon Sep 17 00:00:00 2001 -From: Alexander Volkov -Date: Fri, 19 Jun 2015 13:34:11 +0300 -Subject: [PATCH] xcb: Ignore disabling of outputs in the middle of the mode - switch -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -X server may send RROutputChangeNotify event with null crtc and mode, -when it switches an output mode. Request RROutputInfo to distinguish -this case from the case when the output is explicitly disabled. - -Change-Id: I4c2356ec71dbcc8013009ea8a6f46dd11f19d6bb -Task-number: QTBUG-44158 -Task-number: QTBUG-46786 -Task-number: QTBUG-46822 -Reviewed-by: Daniel Vrátil -Reviewed-by: Gatis Paeglis -Reviewed-by: Shawn Rutledge ---- - src/plugins/platforms/xcb/qxcbconnection.cpp | 18 +++++++++++++----- - 1 file changed, 13 insertions(+), 5 deletions(-) - -diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp -index 0867615..29e1fd1 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp -@@ -265,11 +265,19 @@ void QXcbConnection::updateScreens(const xcb_randr_notify_event_t *event) - } else if (screen) { - // Screen has been disabled -> remove - if (output.crtc == XCB_NONE && output.mode == XCB_NONE) { -- qCDebug(lcQpaScreen) << "output" << screen->name() << "has been disabled"; -- m_screens.removeOne(screen); -- foreach (QXcbScreen *otherScreen, m_screens) -- otherScreen->removeVirtualSibling((QPlatformScreen *) screen); -- QXcbIntegration::instance()->destroyScreen(screen); -+ xcb_randr_get_output_info_cookie_t outputInfoCookie = -+ xcb_randr_get_output_info(xcb_connection(), output.output, output.config_timestamp); -+ QScopedPointer outputInfo( -+ xcb_randr_get_output_info_reply(xcb_connection(), outputInfoCookie, NULL)); -+ if (outputInfo->crtc == XCB_NONE) { -+ qCDebug(lcQpaScreen) << "output" << screen->name() << "has been disabled"; -+ m_screens.removeOne(screen); -+ foreach (QXcbScreen *otherScreen, m_screens) -+ otherScreen->removeVirtualSibling((QPlatformScreen *) screen); -+ QXcbIntegration::instance()->destroyScreen(screen); -+ } else { -+ qCDebug(lcQpaScreen) << "output" << screen->name() << "has been temporarily disabled for the mode switch"; -+ } - } else { - // Just update existing screen - screen->updateGeometry(output.config_timestamp); --- -2.3.5 - diff --git a/extra/qt5/b0b08cc0e4e38504d6b833702f7477aee4e2a192.patch b/extra/qt5/b0b08cc0e4e38504d6b833702f7477aee4e2a192.patch deleted file mode 100644 index ff1395c43..000000000 --- a/extra/qt5/b0b08cc0e4e38504d6b833702f7477aee4e2a192.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b0b08cc0e4e38504d6b833702f7477aee4e2a192 Mon Sep 17 00:00:00 2001 -From: Ralf Jung -Date: Sun, 5 Jul 2015 12:15:29 +0200 -Subject: [PATCH] When a screen comes back online, the windows need to be told - about it - -On my system, this fixes the misbehavior of Qt applications when the (only) active screen is -switched, e.g. from an external screen to the laptop. -This behavior is caused by the screen() of widgets to be set to NULL when their screen goes away. -When a new screen comes online, the widgets *should* be told about it, but they are not. The only -place that "maybeSetScreen" is called is when an existing screen changes its geometry, but not -when a screen gets enabled without its geometry being affected in any way (e.g. because it was -just disabled via xrandr, but has been connected all along). This makes sure that "maybeSetScreen" -is also called when a screen gets enabled. - -Task-number: QTBUG-47041 -Change-Id: Ic72d6beaa544bf9a4efdbea0830b1bc0d6ce5362 -Reviewed-by: Dmitry Shachnev -Reviewed-by: Shawn Rutledge ---- - src/plugins/platforms/xcb/qxcbconnection.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp -index 74f48b0..0867615 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp -@@ -252,6 +252,14 @@ void QXcbConnection::updateScreens(const xcb_randr_notify_event_t *event) - otherScreen->addVirtualSibling(screen); - m_screens << screen; - QXcbIntegration::instance()->screenAdded(screen, screen->isPrimary()); -+ -+ // Windows which had null screens have already had expose events by now. -+ // They need to be told the screen is back, it's OK to render. -+ foreach (QWindow *window, QGuiApplication::topLevelWindows()) { -+ QXcbWindow *xcbWin = static_cast(window->handle()); -+ if (xcbWin) -+ xcbWin->maybeSetScreen(screen); -+ } - } - // else ignore disabled screens - } else if (screen) { --- -2.3.5 - diff --git a/extra/qt5/keypad-shortcuts.patch b/extra/qt5/keypad-shortcuts.patch deleted file mode 100644 index 2961b9d3c..000000000 --- a/extra/qt5/keypad-shortcuts.patch +++ /dev/null @@ -1,94 +0,0 @@ -From c137502c7fd7550c780c9531ec414098d8101757 Mon Sep 17 00:00:00 2001 -From: Alexander Volkov -Date: Thu, 18 Sep 2014 16:16:26 +0400 -Subject: Fix shortcuts with keypad keys - -The way of searching a shortcut match for a key without the keypad -modifier introduced in 547a1bea492954d828aa0798be93384669812489 is -not correct. QKeyEvent::setModifiers() doesn't change native scan code -so we get the incorrect QKeyEvent object which is eventually passed to -the implementation of QPlatformIntegration::possibleKeys(). -And then QPlatformIntegration::possibleKeys() returns the same result -as for the original QKeyEvent object. - -So to fix it we have to remove Qt::KeypadModifier from keys after -calling the implementation of QPlatformIntegration::possibleKeys(), -as it was before 547a1bea492954d828aa0798be93384669812489. - -Task-number: QTBUG-33093 -Task-number: QTBUG-20191 -Change-Id: I5b33c9b6cf2c06b133166a31eba9aff9181c9483 ---- - src/gui/kernel/qshortcutmap.cpp | 12 +++++------- - src/gui/kernel/qshortcutmap_p.h | 4 ++-- - 2 files changed, 7 insertions(+), 9 deletions(-) - -diff --git a/src/gui/kernel/qshortcutmap.cpp b/src/gui/kernel/qshortcutmap.cpp -index c915ed39..c13c82c 100644 ---- a/src/gui/kernel/qshortcutmap.cpp -+++ b/src/gui/kernel/qshortcutmap.cpp -@@ -388,9 +388,7 @@ QKeySequence::SequenceMatch QShortcutMap::nextState(QKeyEvent *e) - result = find(e); - if (result == QKeySequence::NoMatch && (e->modifiers() & Qt::KeypadModifier)) { - // Try to find a match without keypad modifier -- QKeyEvent event = *e; -- event.setModifiers(e->modifiers() & ~Qt::KeypadModifier); -- result = find(&event); -+ result = find(e, Qt::KeypadModifier); - } - if (result == QKeySequence::NoMatch && e->modifiers() & Qt::ShiftModifier) { - // If Shift + Key_Backtab, also try Shift + Qt::Key_Tab -@@ -443,13 +441,13 @@ bool QShortcutMap::hasShortcutForKeySequence(const QKeySequence &seq) const - which can be access through matches(). - \sa matches - */ --QKeySequence::SequenceMatch QShortcutMap::find(QKeyEvent *e) -+QKeySequence::SequenceMatch QShortcutMap::find(QKeyEvent *e, int ignoredModifiers) - { - Q_D(QShortcutMap); - if (!d->sequences.count()) - return QKeySequence::NoMatch; - -- createNewSequences(e, d->newEntries); -+ createNewSequences(e, d->newEntries, ignoredModifiers); - #if defined(DEBUG_QSHORTCUTMAP) - qDebug() << "Possible shortcut key sequences:" << d->newEntries; - #endif -@@ -551,7 +549,7 @@ void QShortcutMap::clearSequence(QVector &ksl) - Alters \a seq to the new sequence state, based on the - current sequence state, and the new key event \a e. - */ --void QShortcutMap::createNewSequences(QKeyEvent *e, QVector &ksl) -+void QShortcutMap::createNewSequences(QKeyEvent *e, QVector &ksl, int ignoredModifiers) - { - Q_D(QShortcutMap); - QList possibleKeys = QKeyMapper::possibleKeys(e); -@@ -581,7 +579,7 @@ void QShortcutMap::createNewSequences(QKeyEvent *e, QVector &ksl) - curKsl.setKey(0, 2); - curKsl.setKey(0, 3); - } -- curKsl.setKey(possibleKeys.at(pkNum), index); -+ curKsl.setKey(possibleKeys.at(pkNum) & ~ignoredModifiers, index); - } - } - } -diff --git a/src/gui/kernel/qshortcutmap_p.h b/src/gui/kernel/qshortcutmap_p.h -index 3959c2c..39a8eac 100644 ---- a/src/gui/kernel/qshortcutmap_p.h -+++ b/src/gui/kernel/qshortcutmap_p.h -@@ -96,10 +96,10 @@ private: - QKeySequence::SequenceMatch state(); - void dispatchEvent(QKeyEvent *e); - -- QKeySequence::SequenceMatch find(QKeyEvent *e); -+ QKeySequence::SequenceMatch find(QKeyEvent *e, int ignoredModifiers = 0); - QKeySequence::SequenceMatch matches(const QKeySequence &seq1, const QKeySequence &seq2) const; - QVector matches() const; -- void createNewSequences(QKeyEvent *e, QVector &ksl); -+ void createNewSequences(QKeyEvent *e, QVector &ksl, int ignoredModifiers); - void clearSequence(QVector &ksl); - int translateModifiers(Qt::KeyboardModifiers modifiers); - --- -cgit v0.11.0 -