Bug 249355

Summary: REGRESSION (macOS 11): Form controls don't paint with an inactive appearance in non-key windows
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: FormsAssignee: Aditya Keerthi <akeerthi>
Status: RESOLVED FIXED    
Severity: Normal CC: akeerthi, cdumez, simon.fraser, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
URL: http://pxlcoder.gitlab.io/test-pages/form-controls.html

Description Simon Fraser (smfr) 2022-12-14 16:57:29 PST
Form controls are supposed to paint with an inactive appearance in non-key windows, and repaint when window key state changes. This seems to be broken; progress bars are the only controls that update correctly.
Comment 1 Radar WebKit Bug Importer 2022-12-14 16:58:15 PST
<rdar://problem/103379662>
Comment 2 Aditya Keerthi 2022-12-14 17:10:01 PST
<progress> does this by using `kCUIPresentationStateKey` – all the other controls use AppKit rendering, rather than CoreUI directly.

This would imply that there is no problem with issuing a repaint, but rather, that the state we're giving AppKit is incorrect (or being dropped somewhere).
Comment 3 Simon Fraser (smfr) 2022-12-14 17:43:16 PST
This comes in through `themeWindowHasKeyAppearance = !controlStates.states().contains(ControlStates::States::WindowInactive);`
Comment 4 Aditya Keerthi 2022-12-21 09:56:10 PST
Pull request: https://github.com/WebKit/WebKit/pull/7962
Comment 5 EWS 2022-12-23 09:06:53 PST
Committed 258294@main (456497bb8c15): <https://commits.webkit.org/258294@main>

Reviewed commits have been landed. Closing PR #7962 and removing active labels.