diff --git a/src/controls/QskFocusIndicator.cpp b/src/controls/QskFocusIndicator.cpp index 433ce56e..a827c59d 100644 --- a/src/controls/QskFocusIndicator.cpp +++ b/src/controls/QskFocusIndicator.cpp @@ -55,6 +55,11 @@ void QskFocusIndicator::onFocusItemGeometryChanged() updateFocusFrame(); } +void QskFocusIndicator::onWindowSizeChanged( int ) +{ + updateFocusFrame(); +} + void QskFocusIndicator::onFocusItemDestroyed() { m_data->resetConnections(); @@ -170,11 +175,23 @@ void QskFocusIndicator::connectWindow( const QQuickWindow* window, bool on ) { connect( window, &QQuickWindow::activeFocusItemChanged, this, &QskFocusIndicator::onFocusItemChanged ); + + connect( window, &QQuickWindow::widthChanged, + this, &QskFocusIndicator::onWindowSizeChanged ); + + connect( window, &QQuickWindow::heightChanged, + this, &QskFocusIndicator::onWindowSizeChanged ); } else { disconnect( window, &QQuickWindow::activeFocusItemChanged, this, &QskFocusIndicator::onFocusItemChanged ); + + disconnect( window, &QQuickWindow::widthChanged, + this, &QskFocusIndicator::onWindowSizeChanged ); + + disconnect( window, &QQuickWindow::heightChanged, + this, &QskFocusIndicator::onWindowSizeChanged ); } } diff --git a/src/controls/QskFocusIndicator.h b/src/controls/QskFocusIndicator.h index fc1d9936..f9630131 100644 --- a/src/controls/QskFocusIndicator.h +++ b/src/controls/QskFocusIndicator.h @@ -26,10 +26,10 @@ protected: virtual void windowChangeEvent( QskWindowChangeEvent* ) override; virtual QRectF focusRect() const; -private Q_SLOTS: - void onFocusItemGeometryChanged(); - private: + void onFocusItemGeometryChanged(); + void onWindowSizeChanged( int ); + void onFocusItemChanged(); void onFocusItemDestroyed(); void updateFocusFrame();