Android: don't run setSystemUiVisibility with same params
Cache fullscreen and expandedToCutout values and run setSystemUiVisibility() only when changes has been made. Task-number: QTBUG-132720 Change-Id: I51559e485653d4091e79391962bc82042714f7be Reviewed-by: Petri Virkkunen <petri.virkkunen@qt.io>
This commit is contained in:
parent
0fb3661f13
commit
2c40e9b91c
@ -262,8 +262,12 @@ void QAndroidPlatformWindow::updateSystemUiVisibility()
|
|||||||
if (!isNonRegularWindow) {
|
if (!isNonRegularWindow) {
|
||||||
const bool isFullScreen = (m_windowState & Qt::WindowFullScreen);
|
const bool isFullScreen = (m_windowState & Qt::WindowFullScreen);
|
||||||
const bool expandedToCutout = (flags & Qt::ExpandedClientAreaHint);
|
const bool expandedToCutout = (flags & Qt::ExpandedClientAreaHint);
|
||||||
QtAndroid::backendRegister()->callInterface<QtJniTypes::QtWindowInterface, void>(
|
if (m_isFullscreen != isFullScreen || m_expandedToCutout != expandedToCutout) {
|
||||||
"setSystemUiVisibility", isFullScreen, expandedToCutout);
|
m_isFullscreen = isFullScreen;
|
||||||
|
m_expandedToCutout = expandedToCutout;
|
||||||
|
QtAndroid::backendRegister()->callInterface<QtJniTypes::QtWindowInterface, void>(
|
||||||
|
"setSystemUiVisibility", isFullScreen, expandedToCutout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,6 +112,9 @@ private:
|
|||||||
Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(safeAreaMarginsChanged)
|
Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(safeAreaMarginsChanged)
|
||||||
|
|
||||||
[[nodiscard]] QMutexLocker<QMutex> destructionGuard();
|
[[nodiscard]] QMutexLocker<QMutex> destructionGuard();
|
||||||
|
|
||||||
|
bool m_isFullscreen;
|
||||||
|
bool m_expandedToCutout;
|
||||||
};
|
};
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user