diff --git a/src/controls/QskQuickItem.cpp b/src/controls/QskQuickItem.cpp index b3739fa4..d8afa69a 100644 --- a/src/controls/QskQuickItem.cpp +++ b/src/controls/QskQuickItem.cpp @@ -603,9 +603,14 @@ bool QskQuickItem::event( QEvent* event ) } case QEvent::ContentsRectChange: { + resetImplicitSize(); + if ( polishOnResize() ) polish(); + if ( flags() & QQuickItem::ItemHasContents ) + update(); + changeEvent( event ); return true; } @@ -779,9 +784,10 @@ void QskQuickItem::itemChange( QQuickItem::ItemChange change, case QQuickItem::ItemChildAddedChange: case QQuickItem::ItemChildRemovedChange: { - // do we want to have events for thos ??? + // do we want to have events for those ??? break; } + case QQuickItem::ItemOpacityHasChanged: case QQuickItem::ItemActiveFocusHasChanged: case QQuickItem::ItemRotationHasChanged: diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index 50e42c7a..36869985 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -258,7 +258,14 @@ void QskSkinnable::setSkinlet( const QskSkinlet* skinlet ) m_data->skinlet = skinlet; m_data->hasLocalSkinlet = ( skinlet != nullptr ); - owningControl()->update(); + if ( auto control = owningControl() ) + { + control->resetImplicitSize(); + control->polish(); + + if ( control->flags() & QQuickItem::ItemHasContents ) + control->update(); + } } const QskSkinlet* QskSkinnable::skinlet() const diff --git a/src/controls/QskSkinnable.h b/src/controls/QskSkinnable.h index aabe5b9d..e17d7f3e 100644 --- a/src/controls/QskSkinnable.h +++ b/src/controls/QskSkinnable.h @@ -72,7 +72,7 @@ class QSK_EXPORT QskSkinnable QskSkinnable(); virtual ~QskSkinnable(); - void setSkinlet( const QskSkinlet* skinlet ); + void setSkinlet( const QskSkinlet* ); const QskSkinlet* skinlet() const; QFont effectiveFont( QskAspect ) const;