New issue
Advanced search Search tips

Issue 631216 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 23
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug


Sign in to add a comment

mash shelf: Auto-hide support

Project Member Reported by jamescook@chromium.org, Jul 25 2016

Issue description

This is not a straightforward conversion. A new window server API will be needed.

ShelfLayoutManager::AutoHideEventFilter
* Watches for any mouse/gesture event and forwards to ShelfLayoutManager
* Observes for any mouse drag, and skips showing the hidden shelf if the user is dragging, even if he hits the bottom of the screen
* The item being dragged could be inside web contents, like a piece of text or an image.
* I don’t know how the window manager tracks these drags.
* Tracks gesture drags and changes shelf transparency during drag
* Checks for the mouse being at the bottom of the screen to trigger a show
* Handles gesture edge swipes
* These last two will need something special for mus with material design shelf, as there are no visible pixels for the auto-hidden shelf, hence no target for enter/exit/move.
* The window server may need special case code to notify the window manager when the mouse hits the screen edge.

 
Owner: jamescook@chromium.org
Owner: msw@chromium.org
Status: Assigned (was: Available)
msw, assigning to you for the part where we delegate out the creation of the existing event filter. Feel free to give back to me after that part. I'm not sure who is best suited to build the window server API, but that can happen later.

 Issue 613212  has been merged into this issue.
Summary: mash shelf: Auto-hide support (was: mash shelf: Replace auto-hide event filter)
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 9 2016

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

commit e2dd2245e3707d5ff18b3186192f00253c04598f
Author: msw <msw@chromium.org>
Date: Tue Aug 09 20:53:31 2016

mash: Move AutoHideEventHandler to WmShelfAura.

Manage an AutoHideEventHandler instance in WmShelfAura.
Send the target window to UpdateAutoHideFor*Event.
Move in_mouse_drag_ to ShelfLayoutManager.

Remove WmShelf::UpdateAutoHideFor*Event helpers.
Remove shelf/status Widget event handler overrides.
(this disables auto-hide for mash, needs implementation)
(partly reverts https://codereview.chromium.org/2109193002)

BUG= 615155 , 621112 , 631216 
TEST=Automated; no auto-hide changes in non-mash ChromeOS.
R=jamescook@chromium.org

Review-Url: https://codereview.chromium.org/2227143003
Cr-Commit-Position: refs/heads/master@{#410813}

[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/aura/wm_shelf_aura.cc
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/aura/wm_shelf_aura.h
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/common/shelf/wm_shelf.h
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/common/system/status_area_widget.cc
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/common/system/status_area_widget.h
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/mus/bridge/wm_shelf_mus.cc
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/mus/bridge/wm_shelf_mus.h
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/shelf/shelf_layout_manager.h
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/shelf/shelf_widget.cc
[modify] https://crrev.com/e2dd2245e3707d5ff18b3186192f00253c04598f/ash/shelf/shelf_widget.h

Labels: Proj-Mustash
Components: Internals>MUS

Comment 8 by msw@chromium.org, Nov 14 2016

Labels: -Pri-1 Pri-2

Comment 9 by msw@chromium.org, Jan 13 2017

Blocking: 681072

Comment 10 by msw@chromium.org, Mar 29 2017

 Issue 706591  has been merged into this issue.

Comment 11 by msw@chromium.org, Mar 29 2017

James, feel free to take this bug if you're working on it.
Adding the word "autohide" to make this easier to find.

I'm not working on it this week. We can load balance next week.

Cc: -jamescook@chromium.org
Labels: Proj-Mustash-Mash
Owner: jamescook@chromium.org
Status: Started (was: Assigned)
Actually, I'll just start this now. I love autohide, so I want it for my own dogfooding. :-)

Cc: mfomitchev@chromium.org
Status: Assigned (was: Started)
Actually, this is going to wait until we decide if we can forward all events from window server to ash. If we can do that then all the global ash:Shell EventHandlers/EventFilters will work and autohide will "just work".

mfomitchev@ is going to get some event latency numbers that we can use to guesstimate the impact of an extra process hop, then we'll decide.

Sorry for the email spam.

Comment 16 by msw@chromium.org, Sep 19 2017

Blocking: 557406
The current state:
* Autohide properly hides the shelf
* The shelf *sometimes* shows when you move the cursor to screen bottom. It only works if you move the cursor quickly.

Comment 18 by msw@chromium.org, Oct 17 2017

Blocking: 695686
Cc: -mfomitchev@chromium.org
Components: -Internals>MUS Internals>Services>WindowService
Components: -MUS

Comment 22 by e...@chromium.org, Mar 9 2018

Cc: -e...@chromium.org
Un-cc-ing me from all bugs on my final day.
Components: -Internals>Services>WindowService Internals>Services>Ash
Labels: -Proj-Mustash-Mash
Project Member

Comment 24 by bugdroid1@chromium.org, Jul 12

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

commit 3bccf529dd2431e9fba3265b4cc678704182d272
Author: James Cook <jamescook@chromium.org>
Date: Thu Jul 12 00:45:20 2018

Clean up MASH_DEPRECATED in shelf auto-hide code

I verified that autohide works properly under mash with mouse gestures,
touch gestures, and bezel gestures.

Bug:  636647 ,  631216 
Test: ash_unittests, manual on device
Change-Id: I368a72a96dbac9791eb67ede9adc739e1d9079fb
Reviewed-on: https://chromium-review.googlesource.com/1134405
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574433}
[modify] https://crrev.com/3bccf529dd2431e9fba3265b4cc678704182d272/ash/shelf/shelf.cc
[modify] https://crrev.com/3bccf529dd2431e9fba3265b4cc678704182d272/ash/shelf/shelf.h

Status: Fixed (was: Assigned)

Sign in to add a comment