mash: Support drag-and-drop between app list and the shelf |
||||||||||||||
Issue descriptionApp List: Support drag-and-drop between app list and the shelf.
,
May 12 2016
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.
,
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.
,
May 12 2016
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?
,
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?
,
May 13 2016
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.
,
May 17 2016
,
Sep 2 2016
,
Oct 4 2016
,
Feb 3 2017
Making this Mash-specific. Generic DnD work is captured in issue 548443 .
,
Nov 16 2017
Not sure if there is still work remaining here?
,
Nov 16 2017
This doesn't yet work. James, should I hang onto this or pass it off [to hejq@]?
,
Nov 17 2017
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.
,
Apr 19 2018
,
Oct 5
,
Oct 6
Issue 805607 has been merged into this issue.
,
Oct 6
Issue 805608 has been merged into this issue.
,
Oct 8
,
Dec 13
I am able to drag and drop icons from app list to shelf on M71. Is this what this bug is about?
,
Dec 13
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.
,
Dec 13
I verified Mash works in a Release build (no DCHECKs). Filed issue 914961 for DCHECK failure. |
||||||||||||||
►
Sign in to add a comment |
||||||||||||||
Comment 1 by msw@chromium.org
, May 12 2016