New issue
Advanced search Search tips

Issue 667478 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 659155



Sign in to add a comment

Transient window reordering problematic for mus

Project Member Reported by sky@chromium.org, Nov 21 2016

Issue description

Currently Window allows for an invalid z-order (with regards to transients), but fixes it up later on. For example, three windows, W1, W2 and T1, in that order, with T1 a transient of W2. Window allows you to stack W2 on top of T1 (this is invalid, T1 should always be on top of W2), but then fixes it up later on by calling TransientWindowManager::OnWindowStackingChanged. This is going to confuse mus and I suspect result in CHECKs in the client.

The reason it's going to be problematic is that the client will generate two reorder events:
1: move W2 on top of T1.
2: move T1 back on top of W2 (initiated by TransientWindowManager)

The server will process the first reorder, and automatically apply the second. This means when mus processes 2 it'll detect the window is already in place and return false (indicating the change failed). The client CHECKs that reorders succeed.

One thought is to move transient restacking entirely out of mus and assume the client, or wm handles it.
 

Comment 1 by sky@chromium.org, Nov 21 2016

Status: Fixed (was: Untriaged)
The resolution is to assume the server is going to apply the reorder.

Sign in to add a comment