QskSkinTransition fixed
This commit is contained in:
parent
372751a13d
commit
0f0368d3b1
@ -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 )
|
||||
{
|
||||
|
@ -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"
|
||||
|
@ -100,4 +100,6 @@ class QSK_EXPORT QskWindow : public QQuickWindow
|
||||
Q_DECLARE_PRIVATE( QskWindow )
|
||||
};
|
||||
|
||||
QSK_EXPORT QskSkin* qskEffectiveSkin( const QQuickWindow* );
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user