• Thomas Lukaszewicz's avatar
    Fix clipping issue on rounded corners for bubbles · 651f00f8
    Thomas Lukaszewicz authored
    Currently bubbles rely on having the NonClientFrameView apply a clip
    mask to the ClientView so that the ClientView's contents are
    correctly constrained to the bounds of the frame.
    
    However, if the ClientView's content view hierarchy employs layer
    backed views, the ClientView's clip mask is ignored if the ClientView
    does not itself paint to a layer. This results in clipping issues
    where views can clip outside the bounds of the bubble when corner
    radius is increased.
    
    This patch addresses this issue by having the BubbleDialogDelegate
    supply a ClientView that paints to a textured layer. To address the
    existing cases where bubbles rely on the frame's background color
    (i.e. they assume that the ClientView is transparent), the
    BubbleFrameView will update the background color to ensure existing
    bubble behavior is preserved.
    
    Currently these features are gated behind the
    kEnableMDRoundedCornersOnDialogs feature flag.
    
    Bug: 932970, 822075
    Change-Id: I68542ffe84b533fd8b751acc01e5852a8b9bf6b3
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2257452Reviewed-by: default avatarScott Violet <sky@chromium.org>
    Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#782101}
    651f00f8
shelf_bubble.cc 2.47 KB