New issue
Advanced search Search tips

Issue 844829 link

Starred by 7 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 6
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Overview and window switcher handle transients poorly

Project Member Reported by reve...@chromium.org, May 19 2018

Issue description

This is more evident when using crostini and easy to reproduce.

In overview mode we render the transient as part of the parent (makes sense). However, we also add an item for the child that is completely transparent.

Window-switcher behaves differently. Each window gets it's own item. That probably doesn't make sense for transients as it's not really possible to switch to a transient parent.
 
This is easy to repro in crostini by installing gtk-3-examples, running gtk3-demo.

wutao@, do you have time to look at this?

Comment 2 by wutao@chromium.org, May 19 2018

Issue 794853 has been merged into this issue.

Comment 3 by wutao@chromium.org, May 19 2018

Cc: sammiequon@chromium.org omrilio@chromium.org
sammiequon@, do you have time to look this as overview mode improvement? Thanks.

+omrilio@.
We might need to define what is the behavior in the Window-switcher.

Can we start by making the behavior consistent? Window-switcher behavior where each window gets an item is confusing but at least better than overview mode where you're getting empty items.
Cc: -sammiequon@chromium.org mccanny@chromium.org
Owner: sammiequon@chromium.org
Status: Assigned (was: Available)
Project Member

Comment 7 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1c2052ab5f930300f4a5fe2cc1de15a06c64e516

commit 1c2052ab5f930300f4a5fe2cc1de15a06c64e516
Author: Sammie Quon <sammiequon@google.com>
Date: Thu Nov 29 01:20:24 2018

wm: Have overview and cycle list share some code.

Refactor overview and cycle list code. The should end up showing the same
windows, so they should share the same codes if possible.

Test: manual
Bug:  844829 
Change-Id: Ib5f2800f7b0876afcff10cea3bf37f0156e83467
Reviewed-on: https://chromium-review.googlesource.com/c/1344814
Commit-Queue: Sammie Quon <sammiequon@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611977}
[modify] https://crrev.com/1c2052ab5f930300f4a5fe2cc1de15a06c64e516/ash/wm/mru_window_tracker.cc
[modify] https://crrev.com/1c2052ab5f930300f4a5fe2cc1de15a06c64e516/ash/wm/overview/window_selector.cc
[modify] https://crrev.com/1c2052ab5f930300f4a5fe2cc1de15a06c64e516/ash/wm/overview/window_selector.h
[modify] https://crrev.com/1c2052ab5f930300f4a5fe2cc1de15a06c64e516/ash/wm/overview/window_selector_controller.cc
[modify] https://crrev.com/1c2052ab5f930300f4a5fe2cc1de15a06c64e516/ash/wm/window_util.cc
[modify] https://crrev.com/1c2052ab5f930300f4a5fe2cc1de15a06c64e516/ash/wm/window_util.h

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/171bbc72e48dcc1d89f772554a241240797d1e2e

commit 171bbc72e48dcc1d89f772554a241240797d1e2e
Author: Sammie Quon <sammiequon@google.com>
Date: Fri Nov 30 02:58:54 2018

overview: Do not show windows if their transient root is also shown.

Overview will show all windows related by transient on the same
thumbnail. Currently we will get blank spaces since the MRU list may
contain two windows related by transient, and the transient ancestor
or descendant of the most recent window will get transformed onto the
transient related windows thumbnail, leaving a blank space.

Introduce a function which removes all transient descendants from a
given list if their transient root exists in the same list. First
usage is overview but may need to extend to alt tab in future.

Test: ash_unittests WindowUtilTest.RemoveTransientDescendants
Bug:  844829 
Change-Id: Ic2f9b476bc353b50a197be8fcf7bb3f2e3d44c49
Reviewed-on: https://chromium-review.googlesource.com/c/1355249
Commit-Queue: Sammie Quon <sammiequon@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612535}
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ash/wm/overview/scoped_transform_overview_window.cc
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ash/wm/overview/window_selector_controller.cc
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ash/wm/window_transient_descendant_iterator.cc
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ash/wm/window_util.cc
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ash/wm/window_util.h
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ash/wm/window_util_unittest.cc
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ui/wm/core/window_util.cc
[modify] https://crrev.com/171bbc72e48dcc1d89f772554a241240797d1e2e/ui/wm/core/window_util.h

Project Member

Comment 9 by bugdroid1@chromium.org, Dec 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2223fcd994654efd606f02ba4e1ee2f40083415

commit b2223fcd994654efd606f02ba4e1ee2f40083415
Author: Sammie Quon <sammiequon@google.com>
Date: Thu Dec 06 01:34:52 2018

wm: Introduce wm::WindowPreviewView.

It is a view which takes a window and makes multiple mirror views for
each transient descendant of the window.

Replace overview, shelf and window cycle mirror views with this, so
users can see the transient descendants. Previously they would just
disappear.

For window cycle, remove from the list of windows windows which are
linked together by transients, as wm::WindowPreviewView will handle
showing all the transient descendants.

Test: manual
Bug:  844829 
Change-Id: I7b09530d2b387d2724e53da5cfc8c01535c562bd
Reviewed-on: https://chromium-review.googlesource.com/c/1357309
Commit-Queue: Sammie Quon <sammiequon@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614224}
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/BUILD.gn
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/shelf/window_preview.cc
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/shelf/window_preview.h
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/overview/scoped_transform_overview_window.cc
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_cycle_controller.cc
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_cycle_list.cc
[modify] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_mirror_view.cc
[add] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_preview_view.cc
[add] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_preview_view.h
[add] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_preview_view_test_api.cc
[add] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_preview_view_test_api.h
[add] https://crrev.com/b2223fcd994654efd606f02ba4e1ee2f40083415/ash/wm/window_preview_view_unittest.cc

Status: Fixed (was: Assigned)
Project Member

Comment 11 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f203aebedb9b1813fed960adb3ecad91c654cafe

commit f203aebedb9b1813fed960adb3ecad91c654cafe
Author: Sammie Quon <sammiequon@google.com>
Date: Thu Dec 13 18:09:35 2018

wm: Fix bug with artificats when using WindowPreviewView.

These artificats were caused by some transient children which whose
bounds were placed outside of screen when minimized. These children
such as StatusBubble are really small and users of WindowPreviewView
are usually even smaller than normal window bounds, so just exclude them.

Also fix a bug with transient windows transforms not reset in
homeLauncherGestureHandler, it was contributing to these artificats too.

Test: manual
Bug:  844829 
Change-Id: Ica69b195dfeb988c75f7b04649d60afe02c6b5bf
Reviewed-on: https://chromium-review.googlesource.com/c/1371067
Reviewed-by: Mitsuru Oshima (gardener - slow) <oshima@chromium.org>
Commit-Queue: Sammie Quon <sammiequon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616363}
[modify] https://crrev.com/f203aebedb9b1813fed960adb3ecad91c654cafe/ash/app_list/home_launcher_gesture_handler.cc
[modify] https://crrev.com/f203aebedb9b1813fed960adb3ecad91c654cafe/ash/wm/overview/scoped_transform_overview_window.cc
[modify] https://crrev.com/f203aebedb9b1813fed960adb3ecad91c654cafe/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/f203aebedb9b1813fed960adb3ecad91c654cafe/ash/wm/window_preview_view.cc

Sign in to add a comment