New issue
Advanced search Search tips

Issue 900758 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: ----



Sign in to add a comment

Swipe up to un auto-hide the launcher, then move the mouse to the shelf. Shelf dissapears before mouse can get there

Project Member Reported by newcomer@chromium.org, Oct 31

Issue description

What steps will reproduce the problem?
(1) Swipe up to show an autohidden shelf.
(2) Try to then move the mouse to the shelf.

What is the expected result?
Mouse can be moved to the shelf and then the shelf items can be interacted with.

What happens instead?
Shelf closes when the mouse moves.
 
Cc: manucornet@chromium.org
Owner: minch@chromium.org
I guess this is the expected behavior from the old shelf. Move the mouse to the bottom of the screen will show the auto-hide shelf.
Labels: Pri-1
Talked to kejia offline -- we should not hide the shelf when the mouse moves.
Status: Started (was: Untriaged)
Cc: omrilio@chromium.org mccanny@chromium.org
We can move the mouse to the bottom area, auto-hide shelf will be shown after stop mouse move for 200ms. Then we can interact with the shelf items.

For this issue,
Currently, MOUSE_MOVED, MOUSE_ENTERED, MOUSE_EXITED (e.g, enter/leave a window) are used to update the auto-hide shelf state. Auto-hide shelf can be kept as AUTO_HIDE_SHOWN in many cases, one of them is "mouse cursor is inside the shelf bounds area".
We can update the logic to only update the auto-hide state if mouse is inside shelf bounds. Then the mouse events outside the shelf bounds area will not hide the AUTO_HIDE_SHOWN shelf that was dragged by gesture events. And the AUTO_HIDE_HIDDEN shelf will also be shown after move the mouse to shelf bounds area for 200ms.

The problem here is that we have many other cases will call UpdateVisibilityState, like, window hierarchy changed, child window visibility changed, window stacking changed, etc. I can't count them all here, since it is really many. All of these cases will make the shelf that dragged up by the gesture events before to be hidden again (since we have visible windows, etc). And it looks like we move the mouse and then hide the shelf.

The conclusion is that not only mouse move will hide the shelf, also many other changes (we may can't see it obviously by eyes).

The point is after we dragged up the auto-hide shelf to SHOWN. When it can be hidden again? Only drag down on the shelf?

Feel this is not just a trivial change. Let me know the further thought. Thanks. 



Min, the mouse behavior sounds great. The only addition I would make (which might be implicit here) is that any mouse click outside of the bounds would hide the auto-hide shelf, for consistency with taps outside the shelf.

As for the other cases, can you give other examples? The ones you've listed sound ok - the bug I think concerns the unexpected hiding of the shelf based on a light user interaction that might have intended to go towards the shelf. Other things that cause auto-hide shelf resulting from clicks or system processes sound intended to me.
Think MOUSE_MOVED event will always happen before MOUSE_PRESSED event, which means before mouse click the auto-hide shelf has been hidden by the MOUSE_MOVED event (current behavior).

For other cases? The behaviors that related to the window hierarchy or stacking changed. Like right click to open the menu; move the mouse to the child parts of the window, e.g, for browser window, move the mouse from the main part to the url input box, or to back/forward button etc.

So even after we make MOUSE_MOVED, MOUSE_ENTERED, MOUSE_EXITED don't hide the auto-hide shelf (need to add MOUSE_PRESSED to hide the shelf), we can still see the shelf be hidden when we move the mouse for example in the above cases.



Ok, thanks, I see. Anything involving mouse move should not trigger shelf hide - any clicks or right clicks outside the shelf should hide. If it's feeling too onerous to track down all of the cases, feel free to handle mouse move and any other obvious ones with this bug and we can file separate bugs later as they arise.
I see. Thanks Ben. I am going to see how should we fix it.
Project Member

Comment 11 by bugdroid1@chromium.org, Nov 30

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

commit 3cdc16799b25d0c65339df6630a2b96e0651ac89
Author: Min Chen <minch@google.com>
Date: Fri Nov 30 17:54:49 2018

shelf: Mouse move should not hide the auto-hide shelf.

Bug:  900758 
Change-Id: Idb6e22aa144d290f21c5af6139e0d168905e5ff6
Reviewed-on: https://chromium-review.googlesource.com/c/1352526
Commit-Queue: Min Chen <minch@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612693}
[modify] https://crrev.com/3cdc16799b25d0c65339df6630a2b96e0651ac89/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/3cdc16799b25d0c65339df6630a2b96e0651ac89/ash/shelf/shelf_layout_manager.h
[modify] https://crrev.com/3cdc16799b25d0c65339df6630a2b96e0651ac89/ash/shelf/shelf_layout_manager_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment