From 0678a8a00da586e78d464608e83e89b4df589485 Mon Sep 17 00:00:00 2001 From: Doris Verria Date: Mon, 6 May 2024 17:52:24 +0200 Subject: [PATCH] QWindowPrivate::setFocusToTarget: Add focusReason parameter The focusReason is also important when setting focus to the target, so ammend 8c44064f62b9e57dacdf1dbd8de57e07c938b9db and add this parameter to the virtual method. Change-Id: Id7800a366cbc1ce2ac26b3fec1e47ec9267a57bb Reviewed-by: Volker Hilsheimer --- src/gui/kernel/qwindow_p.h | 2 +- src/widgets/kernel/qwidgetwindow.cpp | 4 ++-- src/widgets/kernel/qwindowcontainer.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/kernel/qwindow_p.h b/src/gui/kernel/qwindow_p.h index f6c8aee9f6..40ab06af8b 100644 --- a/src/gui/kernel/qwindow_p.h +++ b/src/gui/kernel/qwindow_p.h @@ -84,7 +84,7 @@ public: Next, Prev }; - virtual void setFocusToTarget(QWindowPrivate::FocusTarget) {} + virtual void setFocusToTarget(FocusTarget, Qt::FocusReason) {} virtual QRectF closestAcceptableGeometry(const QRectF &rect) const; diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index c5b045c8db..e7f0a84004 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -77,7 +77,7 @@ public: widget->focusWidget()->clearFocus(); } - void setFocusToTarget(QWindowPrivate::FocusTarget target) override + void setFocusToTarget(FocusTarget target, Qt::FocusReason reason) override { Q_Q(QWidgetWindow); QWidget *widget = q->widget(); @@ -107,7 +107,7 @@ public: } if (newFocusWidget) - newFocusWidget->setFocus(); + newFocusWidget->setFocus(reason); } QRectF closestAcceptableGeometry(const QRectF &rect) const override; diff --git a/src/widgets/kernel/qwindowcontainer.cpp b/src/widgets/kernel/qwindowcontainer.cpp index 376a93c758..1aaf04af43 100644 --- a/src/widgets/kernel/qwindowcontainer.cpp +++ b/src/widgets/kernel/qwindowcontainer.cpp @@ -326,7 +326,7 @@ bool QWindowContainer::event(QEvent *e) target = QWindowPrivate::FocusTarget::First; else if (reason == Qt::BacktabFocusReason) target = QWindowPrivate::FocusTarget::Last; - qt_window_private(d->window)->setFocusToTarget(target); + qt_window_private(d->window)->setFocusToTarget(target, reason); d->window->requestActivate(); } }