mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-01-27 23:44:04 +00:00
extra/qt5-base gcc6 fix
This commit is contained in:
parent
7ca4c0168f
commit
6fb7720333
3 changed files with 48 additions and 15 deletions
|
@ -6,6 +6,7 @@
|
|||
# - -no-reduce-relocations -- not available on ARM
|
||||
# - explicitly disable x86 optimizations
|
||||
# - use OpenGLES 2.0
|
||||
# - patch for __builtin_bswqp16 now requiring NEON under GCC 6
|
||||
|
||||
pkgname=qt5-base
|
||||
_qtver=5.6.0
|
||||
|
@ -32,13 +33,14 @@ conflicts=('qt')
|
|||
groups=('qt' 'qt5')
|
||||
_pkgfqn="${pkgname/5-/}-opensource-src-${_qtver}"
|
||||
source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" qt5-alsa1.11.patch
|
||||
qtbug-51648.patch qtbug-51649.patch qtbug-51676.patch qtbug-45812.patch)
|
||||
qtbug-51648.patch qtbug-51649.patch qtbug-51676.patch qtbug-45812.patch bswap16-gcc6.patch)
|
||||
md5sums=('d6b6cfd333c22829c6c85fc52ceed019'
|
||||
'5e96b5cfa248b8b071919adb27abc715'
|
||||
'b09aa4f5763f013b06153fbdbc844404'
|
||||
'ef981ff6892337cdab424ebb113b3c39'
|
||||
'f59a1ea0f10a055ba930a53832933482'
|
||||
'6f03c2ae236cd9698f9291bd8adcbea9')
|
||||
'7f152c40947027acba56023e9d693260'
|
||||
'974ef9e9110a1606e293aef3d37c841f')
|
||||
|
||||
prepare() {
|
||||
cd ${_pkgfqn}
|
||||
|
@ -67,6 +69,9 @@ prepare() {
|
|||
|
||||
# Fix drag and drop from some applications
|
||||
patch -p1 -i ../qtbug-45812.patch
|
||||
|
||||
# Fix for __builtin_bswqp16 now requiring NEON under GCC 6
|
||||
patch -p0 -i ../bswap16-gcc6.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
|
|
11
extra/qt5-base/bswap16-gcc6.patch
Normal file
11
extra/qt5-base/bswap16-gcc6.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- src/corelib/global/qendian.h.orig 2016-05-08 11:03:09.827707031 -0600
|
||||
+++ src/corelib/global/qendian.h 2016-05-08 11:04:53.968007202 -0600
|
||||
@@ -136,7 +136,7 @@
|
||||
| ((source & 0xff000000) >> 24);
|
||||
}
|
||||
#endif // GCC & Clang intrinsics
|
||||
-#if (defined(Q_CC_GNU) && Q_CC_GNU >= 408) || QT_HAS_BUILTIN(__builtin_bswap16)
|
||||
+#if defined(__ARM_NEON__) && ((defined(Q_CC_GNU) && Q_CC_GNU >= 408) || QT_HAS_BUILTIN(__builtin_bswap16))
|
||||
template <> inline quint16 qbswap<quint16>(quint16 source)
|
||||
{
|
||||
return __builtin_bswap16(source);
|
|
@ -1,8 +1,11 @@
|
|||
From 9f5c5d799ed45faff6cb31333b531444d68c2c9a Mon Sep 17 00:00:00 2001
|
||||
From 269fdbdd2bedda5f5eacb751224d3a3fc3eed5bc Mon Sep 17 00:00:00 2001
|
||||
From: Urs Fleisch <ufleisch@users.sourceforge.net>
|
||||
Date: Fri, 26 Feb 2016 17:46:09 +0100
|
||||
Subject: [PATCH] xcb: Fix drag and drop to applications like Emacs and
|
||||
Chromium.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Drops without matching time stamp do not work. I have fixed the issue by
|
||||
reanimating the findXdndAwareParent() function (adapted to XCB) and
|
||||
|
@ -10,15 +13,18 @@ using it to find a matching transaction if all else fails.
|
|||
|
||||
Task-number: QTBUG-45812
|
||||
Change-Id: Ibca15bbab02ccf2f25280418e9edf36972ebf9a0
|
||||
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
|
||||
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
|
||||
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
|
||||
---
|
||||
src/plugins/platforms/xcb/qxcbdrag.cpp | 44 ++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 44 insertions(+)
|
||||
src/plugins/platforms/xcb/qxcbdrag.cpp | 55 +++++++++++++++++++++++++++-------
|
||||
1 file changed, 44 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp
|
||||
index 1d13adf..b22f4af 100644
|
||||
index f5cc873..f1428d0 100644
|
||||
--- a/src/plugins/platforms/xcb/qxcbdrag.cpp
|
||||
+++ b/src/plugins/platforms/xcb/qxcbdrag.cpp
|
||||
@@ -1074,6 +1074,40 @@ void QXcbDrag::cancel()
|
||||
@@ -1072,6 +1072,40 @@ void QXcbDrag::cancel()
|
||||
send_leave();
|
||||
}
|
||||
|
||||
|
@ -41,8 +47,8 @@ index 1d13adf..b22f4af 100644
|
|||
+ }
|
||||
+
|
||||
+ // try window's parent
|
||||
+ xcb_query_tree_cookie_t qtCookie = xcb_query_tree_unchecked(
|
||||
+ c->xcb_connection(), window);
|
||||
+ xcb_query_tree_cookie_t qtCookie = Q_XCB_CALL(
|
||||
+ xcb_query_tree_unchecked(c->xcb_connection(), window));
|
||||
+ xcb_query_tree_reply_t *qtReply = xcb_query_tree_reply(
|
||||
+ c->xcb_connection(), qtCookie, NULL);
|
||||
+ if (!qtReply)
|
||||
|
@ -59,23 +65,34 @@ index 1d13adf..b22f4af 100644
|
|||
|
||||
void QXcbDrag::handleSelectionRequest(const xcb_selection_request_event_t *event)
|
||||
{
|
||||
@@ -1101,6 +1135,16 @@ void QXcbDrag::handleSelectionRequest(const xcb_selection_request_event_t *event
|
||||
@@ -1099,17 +1133,16 @@ void QXcbDrag::handleSelectionRequest(const xcb_selection_request_event_t *event
|
||||
// xcb_convert_selection() that we sent the XdndDrop event to.
|
||||
at = findTransactionByWindow(event->requestor);
|
||||
}
|
||||
-// if (at == -1 && event->time == XCB_CURRENT_TIME) {
|
||||
-// // previous Qt versions always requested the data on a child of the target window
|
||||
-// // using CurrentTime... but it could be asking for either drop data or the current drag's data
|
||||
-// Window target = findXdndAwareParent(event->requestor);
|
||||
-// if (target) {
|
||||
-// if (current_target && current_target == target)
|
||||
-// at = -2;
|
||||
-// else
|
||||
-// at = findXdndDropTransactionByWindow(target);
|
||||
-// }
|
||||
-// }
|
||||
+
|
||||
+ if (at == -1 && event->time == XCB_CURRENT_TIME) {
|
||||
+ xcb_window_t target = findXdndAwareParent(connection(), event->requestor);
|
||||
+ if (target) {
|
||||
+ if (current_target && current_target == target)
|
||||
+ if (current_target == target)
|
||||
+ at = -2;
|
||||
+ else
|
||||
+ at = findTransactionByWindow(target);
|
||||
+ }
|
||||
+ }
|
||||
// if (at == -1 && event->time == XCB_CURRENT_TIME) {
|
||||
// // previous Qt versions always requested the data on a child of the target window
|
||||
// // using CurrentTime... but it could be asking for either drop data or the current drag's data
|
||||
}
|
||||
|
||||
QDrag *transactionDrag = 0;
|
||||
--
|
||||
2.7.4
|
||||
2.7.1
|
||||
|
||||
|
|
Loading…
Reference in a new issue