From 9709ca8b52a6c73508685e916e09040fdd34ee9f Mon Sep 17 00:00:00 2001 From: daboe01 Date: Thu, 12 Feb 2026 18:18:25 +0100 Subject: [PATCH] new: ThemingAdditions and HUD autosetter --- AppKit/CPView.j | 24 ++++++++++++++++++++++++ AppKit/CPWindow/CPWindow.j | 5 +++++ 2 files changed, 29 insertions(+) diff --git a/AppKit/CPView.j b/AppKit/CPView.j index fe14d58b0..d82947d79 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -4179,3 +4179,27 @@ var _CPViewGetTransform = function(/*CPView*/ fromView, /*CPView */ toView) return transform; }; + +@implementation CPView (ThemingAdditions) + +- (void)_setThemeStateRecursively:(ThemeState)aState +{ + [_subviews makeObjectsPerformSelector:@selector(_setThemeStateRecursively:) withObject:aState]; + + [_subviews enumerateObjectsUsingBlock:function(view, idx, stop) + { + [view setThemeState:aState]; + }]; +} + +- (void)_unsetThemeStateRecursively:(ThemeState)aState +{ + [_subviews makeObjectsPerformSelector:@selector(_unsetThemeStateRecursively:) withObject:aState]; + + [_subviews enumerateObjectsUsingBlock:function(view, idx, stop) + { + [view unsetThemeState:aState]; + }]; +} + +@end diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 703ce9e1f..1d821a4fa 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -979,6 +979,11 @@ CPTexturedBackgroundWindowMask - (void)orderFront:(id)aSender { [self orderWindow:CPWindowAbove relativeTo:0]; + + if (_styleMask & CPHUDBackgroundWindowMask) + [_contentView _setThemeStateRecursively:CPThemeStateHUD]; + else + [_contentView _unsetThemeStateRecursively:CPThemeStateHUD]; } - (void)_orderFront