DescriptionMac: Fix another occurrence of the two-windows-have-key-status bug
Message Center popups (notifications) create an NSPanel with
NSNonactivatingPanelMask in its styleMask. This is documented as "The panel
can receive keyboard input without activating the owning application."
However, for these popups, the window reports `NO` from canBecomeKeyWindow. So
it's actually impossible for the popup to get key status anyway. This seems to
confuse Cocoa into this bad two-key-window state under an obscure set of repro
steps involving Hangouts. So, remove NSNonactivatingPanelMask.
However, usually Panels (also) obey a "not-visible-unless-application-is"
rule. Simply removing NSNonactivatingPanelMask will cause notification popups
to not be visible unless Chrome is active, which would be bad. To avoid this,
just use a regular NSWindow instead of an NSPanel.
BUG=459306
TEST=See repro case in http://crbug.com/459306#c38 . Shouldn't happen after this.
Committed: https://crrev.com/ba96ee71b35d61b5dfcecc01a5c5f1568ed001c8
Cr-Commit-Position: refs/heads/master@{#343782}
Patch Set 1 #
Depends on Patchset: Messages
Total messages: 11 (2 generated)
|