diff --git a/nativescript-core/application/application-common.ts b/nativescript-core/application/application-common.ts index 536013ed4..10de66855 100644 --- a/nativescript-core/application/application-common.ts +++ b/nativescript-core/application/application-common.ts @@ -142,6 +142,14 @@ function removeCssClass(rootView: View, cssClass: string) { rootView.cssClasses.delete(cssClass); } +function increaseStyleScopeApplicationCssSelectorVersion(rootView: View) { + const styleScope = rootView._styleScope || ((rootView).currentPage && (rootView).currentPage._styleScope); + + if (styleScope) { + styleScope._increaseApplicationCssSelectorVersion(); + } +} + export function orientationChanged(rootView: View, newOrientation: "portrait" | "landscape" | "unknown"): void { if (!rootView) { return; @@ -151,6 +159,7 @@ export function orientationChanged(rootView: View, newOrientation: "portrait" | if (!rootView.cssClasses.has(newOrientationCssClass)) { ORIENTATION_CSS_CLASSES.forEach(cssClass => removeCssClass(rootView, cssClass)); applyCssClass(rootView, newOrientationCssClass); + increaseStyleScopeApplicationCssSelectorVersion(rootView); rootView._onCssStateChange(); } } @@ -164,6 +173,7 @@ export function systemAppearanceChanged(rootView: View, newSystemAppearance: "da if (!rootView.cssClasses.has(newSystemAppearanceCssClass)) { SYSTEM_APPEARANCE_CSS_CLASSES.forEach(cssClass => removeCssClass(rootView, cssClass)); applyCssClass(rootView, newSystemAppearanceCssClass); + increaseStyleScopeApplicationCssSelectorVersion(rootView); rootView._onCssStateChange(); } } diff --git a/nativescript-core/ui/styling/style-scope.d.ts b/nativescript-core/ui/styling/style-scope.d.ts index 4ea0bda82..b43e2b316 100644 --- a/nativescript-core/ui/styling/style-scope.d.ts +++ b/nativescript-core/ui/styling/style-scope.d.ts @@ -36,6 +36,10 @@ export class StyleScope { public static createSelectorsFromImports(tree: SyntaxTree, keyframes: Object): RuleSet[]; public ensureSelectors(): number; + /** + * Increase the application CSS selector version. + */ + public _increaseApplicationCssSelectorVersion(): void; public isApplicationCssSelectorsLatestVersionApplied(): boolean; public isLocalCssSelectorsLatestVersionApplied(): boolean; diff --git a/nativescript-core/ui/styling/style-scope.ts b/nativescript-core/ui/styling/style-scope.ts index 084eedfa6..6105cff89 100644 --- a/nativescript-core/ui/styling/style-scope.ts +++ b/nativescript-core/ui/styling/style-scope.ts @@ -760,6 +760,10 @@ export class StyleScope { return this._getSelectorsVersion(); } + public _increaseApplicationCssSelectorVersion(): void { + applicationCssSelectorVersion++; + } + public isApplicationCssSelectorsLatestVersionApplied(): boolean { return this._applicationCssSelectorsAppliedVersion === applicationCssSelectorVersion; }