summaryrefslogtreecommitdiff
path: root/dev-qt
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2018-10-30 16:47:09 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2018-10-30 18:46:02 +0100
commitc52c0909344d7ca52c08dcfbc8eb12e2f521620f (patch)
treed9e1a5e2567f5d36412429ee7e0cbcbae7530385 /dev-qt
parentsys-apps/less: Revbump to use pcre2 instead of pcre. (diff)
downloadgentoo-c52c0909344d7ca52c08dcfbc8eb12e2f521620f.tar.gz
gentoo-c52c0909344d7ca52c08dcfbc8eb12e2f521620f.tar.bz2
gentoo-c52c0909344d7ca52c08dcfbc8eb12e2f521620f.zip
dev-qt/qtgui: xcb: Don't get initial screen rotation
Qt-Bug: https://bugreports.qt.io/browse/QTBUG-70760 KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=399053 Closes: https://bugs.gentoo.org/668994 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'dev-qt')
-rw-r--r--dev-qt/qtgui/files/qtgui-5.11.2-qapplication-block.patch53
-rw-r--r--dev-qt/qtgui/qtgui-5.11.2-r1.ebuild172
2 files changed, 225 insertions, 0 deletions
diff --git a/dev-qt/qtgui/files/qtgui-5.11.2-qapplication-block.patch b/dev-qt/qtgui/files/qtgui-5.11.2-qapplication-block.patch
new file mode 100644
index 000000000000..115b42b8e93e
--- /dev/null
+++ b/dev-qt/qtgui/files/qtgui-5.11.2-qapplication-block.patch
@@ -0,0 +1,53 @@
+From d4e937a6280f34bc1cce8c8cea3806a741312fbc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= <spaz16@wp.pl>
+Date: Tue, 25 Sep 2018 18:45:10 +0200
+Subject: xcb: Don't get initial screen rotation
+
+"xcb_randr_get_screen_info" can be slow and in some configurations can
+cause short mouse cursor freezes (which will happen on Qt application
+startup).
+
+Initial screen rotation was used only to not handle possible redundant
+screen change event.
+
+Fixes: QTBUG-70760
+Change-Id: I9f01325a045d2c82c4dd2fce91a18a34e54a4bcd
+Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
+---
+ src/plugins/platforms/xcb/qxcbscreen.cpp | 7 -------
+ src/plugins/platforms/xcb/qxcbscreen.h | 2 +-
+ 2 files changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
+index 7f2793b2b7..a696e2a311 100644
+--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
++++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
+@@ -118,13 +118,6 @@ QXcbVirtualDesktop::QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t
+
+ xcb_depth_next(&depth_iterator);
+ }
+-
+- if (connection->hasXRandr()) {
+- xcb_connection_t *conn = connection->xcb_connection();
+- auto screen_info = Q_XCB_REPLY(xcb_randr_get_screen_info, conn, screen->root);
+- if (screen_info)
+- m_rotation = screen_info->rotation;
+- }
+ }
+
+ QXcbVirtualDesktop::~QXcbVirtualDesktop()
+diff --git a/src/plugins/platforms/xcb/qxcbscreen.h b/src/plugins/platforms/xcb/qxcbscreen.h
+index 6438669e7a..792aca4b06 100644
+--- a/src/plugins/platforms/xcb/qxcbscreen.h
++++ b/src/plugins/platforms/xcb/qxcbscreen.h
+@@ -220,7 +220,7 @@ private:
+ xcb_randr_crtc_t m_crtc;
+ xcb_randr_mode_t m_mode = XCB_NONE;
+ bool m_primary = false;
+- uint8_t m_rotation = XCB_RANDR_ROTATION_ROTATE_0;
++ uint8_t m_rotation = 0;
+
+ QString m_outputName;
+ QSizeF m_outputSizeMillimeters;
+--
+cgit v1.2.1
diff --git a/dev-qt/qtgui/qtgui-5.11.2-r1.ebuild b/dev-qt/qtgui/qtgui-5.11.2-r1.ebuild
new file mode 100644
index 000000000000..f3b8dc42d1b8
--- /dev/null
+++ b/dev-qt/qtgui/qtgui-5.11.2-r1.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+QT5_MODULE="qtbase"
+inherit qt5-build
+
+DESCRIPTION="The GUI module and platform plugins for the Qt5 framework"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd"
+fi
+
+# TODO: linuxfb
+
+IUSE="accessibility dbus egl eglfs evdev +gif gles2 ibus
+ jpeg +libinput +png tslib tuio +udev vnc +xcb"
+REQUIRED_USE="
+ || ( eglfs xcb )
+ accessibility? ( dbus xcb )
+ eglfs? ( egl )
+ ibus? ( dbus )
+ libinput? ( udev )
+ xcb? ( gles2? ( egl ) )
+"
+
+RDEPEND="
+ dev-libs/glib:2
+ ~dev-qt/qtcore-${PV}
+ media-libs/fontconfig
+ >=media-libs/freetype-2.6.1:2
+ >=media-libs/harfbuzz-1.6.0:=
+ >=sys-libs/zlib-1.2.5
+ virtual/opengl
+ dbus? ( ~dev-qt/qtdbus-${PV} )
+ egl? ( media-libs/mesa[egl] )
+ eglfs? (
+ media-libs/mesa[gbm]
+ x11-libs/libdrm
+ )
+ evdev? ( sys-libs/mtdev )
+ gles2? ( media-libs/mesa[gles2] )
+ jpeg? ( virtual/jpeg:0 )
+ libinput? (
+ dev-libs/libinput:=
+ x11-libs/libxkbcommon
+ )
+ png? ( media-libs/libpng:0= )
+ tslib? ( x11-libs/tslib )
+ tuio? ( ~dev-qt/qtnetwork-${PV} )
+ udev? ( virtual/libudev:= )
+ vnc? ( ~dev-qt/qtnetwork-${PV} )
+ xcb? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ >=x11-libs/libXi-1.7.5
+ >=x11-libs/libxcb-1.10:=[xkb]
+ >=x11-libs/libxkbcommon-0.4.1[X]
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+"
+DEPEND="${RDEPEND}
+ evdev? ( sys-kernel/linux-headers )
+ udev? ( sys-kernel/linux-headers )
+"
+PDEPEND="
+ ibus? ( app-i18n/ibus )
+"
+
+PATCHES=( "${FILESDIR}"/${P}-qapplication-block.patch ) # bug 668994
+
+QT5_TARGET_SUBDIRS=(
+ src/tools/qvkgen
+ src/gui
+ src/openglextensions
+ src/platformheaders
+ src/platformsupport
+ src/plugins/generic
+ src/plugins/imageformats
+ src/plugins/platforms
+ src/plugins/platforminputcontexts
+)
+
+QT5_GENTOO_CONFIG=(
+ accessibility:accessibility-atspi-bridge
+ egl
+ eglfs
+ eglfs:eglfs_egldevice:
+ eglfs:eglfs_gbm:
+ evdev
+ evdev:mtdev:
+ :fontconfig
+ :system-freetype:FREETYPE
+ !:no-freetype:
+ !gif:no-gif:
+ gles2::OPENGL_ES
+ gles2:opengles2:OPENGL_ES_2
+ !:no-gui:
+ :system-harfbuzz:HARFBUZZ
+ !:no-harfbuzz:
+ jpeg:system-jpeg:IMAGEFORMAT_JPEG
+ !jpeg:no-jpeg:
+ libinput
+ libinput:xkbcommon-evdev:
+ :opengl
+ png:png:
+ png:system-png:IMAGEFORMAT_PNG
+ !png:no-png:
+ tslib
+ udev:libudev:
+ xcb:xcb:
+ xcb:xcb-glx:
+ xcb:xcb-plugin:
+ xcb:xcb-render:
+ xcb:xcb-sm:
+ xcb:xcb-xlib:
+ xcb:xinput2:
+ xcb::XKB
+)
+
+QT5_GENTOO_PRIVATE_CONFIG=(
+ :gui
+)
+
+src_prepare() {
+ # egl_x11 is activated when both egl and xcb are enabled
+ use egl && QT5_GENTOO_CONFIG+=(xcb:egl_x11) || QT5_GENTOO_CONFIG+=(egl:egl_x11)
+
+ qt_use_disable_config dbus dbus \
+ src/platformsupport/themes/genericunix/genericunix.pri
+
+ qt_use_disable_config tuio tuiotouch src/plugins/generic/generic.pro
+
+ qt_use_disable_mod ibus dbus \
+ src/plugins/platforminputcontexts/platforminputcontexts.pro
+
+ use vnc || sed -i -e '/SUBDIRS += vnc/d' \
+ src/plugins/platforms/platforms.pro || die
+
+ qt5-build_src_prepare
+}
+
+src_configure() {
+ local myconf=(
+ $(usex dbus -dbus-linked '')
+ $(qt_use egl)
+ $(qt_use eglfs)
+ $(usex eglfs '-gbm -kms' '')
+ $(qt_use evdev)
+ $(qt_use evdev mtdev)
+ -fontconfig
+ -system-freetype
+ $(usex gif '' -no-gif)
+ -gui
+ -system-harfbuzz
+ $(qt_use jpeg libjpeg system)
+ $(qt_use libinput)
+ $(qt_use libinput xkbcommon-evdev)
+ -opengl $(usex gles2 es2 desktop)
+ $(qt_use png libpng system)
+ $(qt_use tslib)
+ $(qt_use udev libudev)
+ $(qt_use xcb xcb system)
+ $(qt_use xcb xkbcommon-x11 system)
+ $(usex xcb '-xcb-xlib -xinput2 -xkb' '')
+ )
+ qt5-build_src_configure
+}