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