commit:     a01453d34ae409ef1a3430a08c01b4633484a696
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 28 09:55:39 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Sep 28 09:55:55 2019 +0000
URL:        https://gitweb.gentoo.org/proj/qt.git/commit/?id=a01453d3

dev-qt/qtwidgets: Fix focus widget issue

Fixes keyboard input or rather lack thereof in qtwebengine based applications.

Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...dgets-5.13.1-adjust-focus-widget-properly.patch | 34 ++++++++++++++++++++++
 dev-qt/qtwidgets/qtwidgets-5.13.1.ebuild           |  2 ++
 2 files changed, 36 insertions(+)

diff --git 
a/dev-qt/qtwidgets/files/qtwidgets-5.13.1-adjust-focus-widget-properly.patch 
b/dev-qt/qtwidgets/files/qtwidgets-5.13.1-adjust-focus-widget-properly.patch
new file mode 100644
index 00000000..6fdc0f2b
--- /dev/null
+++ b/dev-qt/qtwidgets/files/qtwidgets-5.13.1-adjust-focus-widget-properly.patch
@@ -0,0 +1,34 @@
+From 947883141d9d8b3079a8a21981ad8a5ce3c4798e Mon Sep 17 00:00:00 2001
+From: David Faure <[email protected]>
+Date: Mon, 9 Sep 2019 18:12:26 +0200
+Subject: [PATCH] QWidget::setFocusProxy: adjust focus widget properly
+
+My commit 3e7463411e adjusted the focus widget by setting
+QApplicationPrivate::focus_widget directly, while there is a method for
+doing this properly, including setFocus_sys() and emitting signals.
+
+Fixes: QTBUG-77364
+Change-Id: I218acf7a9de39173d282ced46def4f65594f80b4
+Reviewed-by: Florian Bruhin <[email protected]>
+Reviewed-by: Volker Hilsheimer <[email protected]>
+Reviewed-by: Allan Sandfeld Jensen <[email protected]>
+Reviewed-by: Shawn Rutledge <[email protected]>
+---
+ src/widgets/kernel/qwidget.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
+index 04290a4ce12..0fa59077449 100644
+--- a/src/widgets/kernel/qwidget.cpp
++++ b/src/widgets/kernel/qwidget.cpp
+@@ -6446,7 +6446,7 @@ void QWidget::setFocusProxy(QWidget * w)
+ 
+     if (changingAppFocusWidget) {
+         QWidget *newDeepestFocusProxy = d_func()->deepestFocusProxy();
+-        QApplicationPrivate::focus_widget = newDeepestFocusProxy ? 
newDeepestFocusProxy : this;
++        QApplicationPrivate::setFocusWidget(newDeepestFocusProxy ? 
newDeepestFocusProxy : this, Qt::NoFocusReason);
+     }
+ }
+ 
+-- 
+2.16.3

diff --git a/dev-qt/qtwidgets/qtwidgets-5.13.1.ebuild 
b/dev-qt/qtwidgets/qtwidgets-5.13.1.ebuild
index 85ceaa9c..677d210f 100644
--- a/dev-qt/qtwidgets/qtwidgets-5.13.1.ebuild
+++ b/dev-qt/qtwidgets/qtwidgets-5.13.1.ebuild
@@ -42,6 +42,8 @@ QT5_GENTOO_PRIVATE_CONFIG=(
        :widgets
 )
 
+PATCHES=( "${FILESDIR}/${P}-adjust-focus-widget-properly.patch" ) # QTBUG-77364
+
 src_configure() {
        local myconf=(
                -opengl $(usex gles2 es2 desktop)

Reply via email to