diff --git a/examples/gallery/main.cpp b/examples/gallery/main.cpp index 611c620f..cf2e19c5 100644 --- a/examples/gallery/main.cpp +++ b/examples/gallery/main.cpp @@ -261,11 +261,11 @@ namespace connect( header, &Header::enabledToggled, tabView, &TabView::setPagesEnabled ); - auto drawer = new Drawer( this ); + auto drawer = new Drawer( tabView ); drawer->setEdge( Qt::RightEdge ); connect( header, &Header::drawerRequested, - drawer, &QskPopup::open ); + drawer, &QskPopup::toggle ); setHeader( header ); setBody( tabView ); diff --git a/src/controls/QskDrawer.cpp b/src/controls/QskDrawer.cpp index fe422e92..c29c1c12 100644 --- a/src/controls/QskDrawer.cpp +++ b/src/controls/QskDrawer.cpp @@ -218,7 +218,6 @@ QskDrawer::QskDrawer( QQuickItem* parentItem ) setZ( 1 ); #endif - setOverlay( true ); setPolishOnResize( true ); setPopupFlag( PopupFlag::CloseOnPressOutside, true ); @@ -399,6 +398,17 @@ void QskDrawer::itemChange( QQuickItem::ItemChange change, switch( static_cast< int >( change ) ) { + case QQuickItem::ItemChildAddedChange: + case QQuickItem::ItemChildRemovedChange: + { + if ( qskIsVisibleToLayout( value.item ) ) + resetImplicitSize(); + + if ( qskIsAdjustableByLayout( value.item ) ) + polish(); + + break; + } case QQuickItem::ItemParentHasChanged: { if ( parentItem() ) @@ -427,7 +437,7 @@ void QskDrawer::setFading( bool on ) const auto aspect = faderAspect(); auto hint = animationHint( aspect ); - hint.updateFlags = QskAnimationHint::UpdatePolish | QskAnimationHint::UpdateNode; + hint.updateFlags = QskAnimationHint::UpdatePolish; startTransition( aspect, hint, from, to ); }