From 63cb3bde5db93bc0bc3ddd4e13dfe4fc94f583cc Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 19 Apr 2018 09:39:46 +0200 Subject: [PATCH] updates, when the window size is changing --- src/controls/QskFocusIndicator.cpp | 17 +++++++++++++++++ src/controls/QskFocusIndicator.h | 6 +++--- 2 files changed, 20 insertions(+), 3 deletions(-) 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();