New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 611457 link

Starred by 6 users

Issue metadata

Status: WontFix
Owner:
Closed: Dec 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

mash: Support drag-and-drop between app list and the shelf

Project Member Reported by mfomitchev@chromium.org, May 12 2016

Issue description

App List: Support drag-and-drop between app list and the shelf.
 

Comment 1 by msw@chromium.org, May 12 2016

Perhaps we can achieve this by just passing an application id through the more standard string drag-and-drop mechanisms. Just an offhand thought, I haven't looked closely.
Sure. We also need to show the ghost image of the icon through the drag. In classic ash this is all handled via app_list::AppListView::SetApplicationDragAndDropHost, and ApplicationDragAndDropHost was implemented by ShelfView. We'll need to do something different in mash, since app list and shelf are in different processes. Perhaps we can refactor the ApplicationDragAndDropHost functionality out of the ShelfView code.

Comment 3 by msw@chromium.org, May 12 2016

Yeah, I'd hope that we'd actually implement the drag and drop in mus or the wm/ws since we'll need drag-and-drop across applications. I'd imagine that interface taking some static data from a drag to shop around elsewhere for dropping.
Cc: jamescook@chromium.org
Oh yeah, somehow I thought that stuff used DragDropController under the hood, but it looks like it does everything independently. In fact it seems like none of ash UI makes use of DragDropController/DragDropClient. Would you or James happen to know why is that?

Comment 5 by msw@chromium.org, May 13 2016

I have very little experience working with drag-drop, and mostly on Windows.
Perhaps we can make ash and mash both use the more common mechanism?
I chatted with skuhne@ - he's saying the reason shelf/applist weren't using DragDropController was that there was not enough functionality in DragDropController at the time. E.g. you couldn't use it to drag-drop from shelf to shelf. 

So it doesn't sound like there's any good reason for us not to use a universal drag-drop service. And yeah, if we could make ash use a similar interface (perhaps via DragDropController) - that would be great, but if proves tricky, I think having two different flows is fine too.
Labels: tadpole
Components: MUS
Components: Internals>MUS
Labels: Proj-Mustash
Blockedon: 548443
Components: -Internals>MUS UI>Shell
Labels: Proj-Mustash-Milestone-Tadpole
Making this Mash-specific. Generic DnD work is captured in  issue 548443 .
Owner: msw@chromium.org
Not sure if there is still work remaining here?

Comment 12 by msw@chromium.org, Nov 16 2017

Components: -UI>Shell -MUS UI>Shell>Launcher UI>Shell>Shelf
Labels: -shellapps -Pri-3 -mustash -tadpole -mash -Proj-Mustash -Proj-Mustash-Milestone-Tadpole Proj-Mustash-Mash Pri-2
This doesn't yet work. James, should I hang onto this or pass it off [to hejq@]?
Cc: hejq@chromium.org xiy...@chromium.org
Owner: ----
Status: Untriaged (was: Available)
This should be much easier (and might "just work") when the app list moves into ash. But that might be a while. Into the triage pile.

Blockedon: -548443 -602727
Labels: Touch-Friendly-Launcher Touch-Friendly-Launcher-Triaged
Components: Internals>Services>Ash
Labels: -Proj-Mustash-Mash
Owner: shibasheikh@chromium.org
Status: Assigned (was: Untriaged)
Issue 805607 has been merged into this issue.
Issue 805608 has been merged into this issue.
Owner: kejiashao@chromium.org
I am able to drag and drop icons from app list to shelf on M71. Is this what this bug is about?
Labels: Proj-Mash-MultiProcess
Summary: mash: Support drag-and-drop between app list and the shelf (was: App List: Support drag-and-drop between app list and the shelf)
This bug was for Mash. I tried to verify that it works in Mash, but there are DCHECK failures even in non-mash:

ninja -C out/Default -j 1000 -l 80 chrome && out/Default/chrome --ash-debug-shortcuts --ash-dev-shortcuts --ash-host-window-bounds="800+0-1024x768" --user-data-dir=/tmp/udd

[138902:138902:1213/123439.898258:FATAL:apps_grid_view.cc(2210)] Check failed: kBottomDragBufferMax - kBottomDragBufferMin >= AppListConfig::instance().page_flip_zone_size() (12 vs. 20)
#0 0x7ff7e742049f base::debug::StackTrace::StackTrace()
#1 0x7ff7e734e5cb logging::LogMessage::~LogMessage()
#2 0x7ff7d677fe5d app_list::AppsGridView::IsPointWithinBottomDragBuffer()
#3 0x7ff7d6779bb2 app_list::AppsGridView::MaybeStartPageFlipTimer()
#4 0x7ff7d677940a app_list::AppsGridView::UpdateDrag()
#5 0x7ff7d677923d app_list::AppsGridView::UpdateDragFromItem()
#6 0x7ff7d676c8c2 app_list::AppListItemView::OnMouseDragged()
#7 0x7ff7e12b435f views::View::ProcessMouseDragged()
#8 0x7ff7e12b3fbb views::View::OnMouseEvent()
#9 0x7ff7e2da2b82 ui::ScopedTargetHandler::OnEvent()
#10 0x7ff7e2d9cc63 ui::EventDispatcher::ProcessEvent()
#11 0x7ff7e2d9ca79 ui::EventDispatcherDelegate::DispatchEventToTarget()
#12 0x7ff7e2d9c9d0 ui::EventDispatcherDelegate::DispatchEvent()
#13 0x7ff7e12bbdff views::internal::RootView::OnMouseDragged()
#14 0x7ff7e12c1f54 views::Widget::OnMouseEvent()
#15 0x7ff7e12e052f views::NativeWidgetAura::OnMouseEvent()
#16 0x7ff7e2d9cc63 ui::EventDispatcher::ProcessEvent()
#17 0x7ff7e2d9ca79 ui::EventDispatcherDelegate::DispatchEventToTarget()
#18 0x7ff7e2d9c9d0 ui::EventDispatcherDelegate::DispatchEvent()
#19 0x7ff7e2d9e722 ui::EventProcessor::OnEventFromSource()
#20 0x7ff7e2d9ecfc ui::EventSource::SendEventToSinkFromRewriter()
#21 0x7ff7e0a13ce0 ash::AshWindowTreeHostPlatform::DispatchEventFromQueue()
#22 0x7ff7d684fde2 ws::HostEventQueue::DispatchOrQueueEvent()
#23 0x7ff7e2da36b9 ui::DispatchEventFromNativeUiEvent()
#24 0x7ff7e036f02e ui::X11WindowOzone::DispatchEvent()
#25 0x7ff7e64b9933 ui::PlatformEventSource::DispatchEvent()
#26 0x7ff7d65d6c79 ui::X11EventSourceLibevent::DispatchPlatformEvent()
#27 0x7ff7d65d6721 ui::X11EventSourceLibevent::ProcessXEvent()
#28 0x7ff7d65d1ae1 ui::X11EventSource::DispatchXEvents()
#29 0x7ff7e74439dc base::MessagePumpLibevent::OnLibeventNotification()
#30 0x7ff7e745aecd event_base_loop

I suspect this bug isn't relevant any more, but the DCHECK failure might be worth investigating.

Status: WontFix (was: Assigned)
I verified Mash works in a Release build (no DCHECKs).

Filed  issue 914961  for DCHECK failure.

Sign in to add a comment