QskSkinTransition fixed

This commit is contained in:
Uwe Rathmann 2021-09-21 16:06:12 +02:00
parent 372751a13d
commit 0f0368d3b1
3 changed files with 19 additions and 3 deletions

View File

@ -1,6 +1,7 @@
#include "QskSkinTransition.h"
#include "QskColorFilter.h"
#include "QskControl.h"
#include "QskWindow.h"
#include "QskHintAnimator.h"
#include "QskSkin.h"
#include "QskSkinHintTable.h"
@ -8,7 +9,6 @@
#include <qglobalstatic.h>
#include <qguiapplication.h>
#include <qobject.h>
#include <qquickwindow.h>
#include <qvector.h>
#include <unordered_map>
@ -616,10 +616,13 @@ void QskSkinTransition::process()
{
if ( auto quickWindow = qobject_cast< QQuickWindow* >( window ) )
{
if ( !quickWindow->isVisible() )
if ( !quickWindow->isVisible() ||
( qskEffectiveSkin( quickWindow ) != m_skins[ 1 ] ) )
{
continue;
}
auto* group = new AnimatorGroup( quickWindow );
auto group = new AnimatorGroup( quickWindow );
if ( doGraphicFilter )
{

View File

@ -678,4 +678,15 @@ QskSkin* QskWindow::skin() const
return d_func()->skin;
}
QskSkin* qskEffectiveSkin( const QQuickWindow* window )
{
if ( auto w = qobject_cast< const QskWindow* >( window ) )
{
if ( auto skin = w->skin() )
return skin;
}
return qskSetup->skin();
}
#include "moc_QskWindow.cpp"

View File

@ -100,4 +100,6 @@ class QSK_EXPORT QskWindow : public QQuickWindow
Q_DECLARE_PRIVATE( QskWindow )
};
QSK_EXPORT QskSkin* qskEffectiveSkin( const QQuickWindow* );
#endif