• Mitsuru Oshima's avatar
    Improve xdg_popup support · a9697328
    Mitsuru Oshima authored
    * use TYPE_POPUP for xdg_popup. The differences from TYPE_WINDOW are:
      - no frame
      - ash will not control its bounds
    * make popups transient children: this fixes following scenarios
      - z order is correctly updated when parent's z order changes
      - they're grouped in overview.
    * implement grab
      - capture even when the grab is requested on the surface
      - transfer capture to child if the child popup requested
         grab.
      - close the surface when capture(grab) is lost.
      - but transfer the grab to the parent if the parent had grab.
    
    BUG=788782
    TEST=covered by unit tests. manually tested with gtk3-demo.
    
    Change-Id: I73f5bc7e555f2c28f78dc25a55f77f0a70fd9b78
    Reviewed-on: https://chromium-review.googlesource.com/1102354
    Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
    Reviewed-by: default avatarDavid Reveman <reveman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#568364}
    a9697328
shell_surface_unittest.cc 25.2 KB