• Minju Kim's avatar
    Make rounded corner of browser frame from NonClientView::GetWindowMask · 29032e48
    Minju Kim authored
    crrev.com/c/2578501 introduces
    PlatformWindowDelegate::GetWindowMaskForWindowShape and updates
    window region by the window mask in ozone/wayland.
    This CL is the implementation to make the corner of the browser frame
    rounded from the window mask.
    It is done by XShape in x11, but there is no equivalent extension
    of XShape in wayland.
    
    In this CL,
    1. Introduce WindowShapeUpdater to update |ui::Layer::alpha_shape_|
       for the rounded corner of window shape from
       NonClientView::GetWindowMask.
       - When bounds changes, ui::Layer::alpha_shape_ is updated according
         to the ShapeRects converted from NonClientView::GetWindowMask.
       - UpdateWindowTransparency when ui::Layer::alpha_shape_ is updated.
    
    2. Set transparent:true to the compositor when NonClientView has
       window mask.
       Otherwise, AppendQuadsToFillScreen to always fill the entire
       screen in LayerTreeHostImpl.
    
    Bug: 1126828
    Change-Id: I3a712b8c5f33f9fd32bd2cd5e6ee8664732e3ca3
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2419056Reviewed-by: default avatarScott Violet <sky@chromium.org>
    Commit-Queue: MINJU KIM <mkim@igalia.com>
    Cr-Commit-Position: refs/heads/master@{#841784}
    29032e48
window_shape_updater.cc 2.7 KB