When dragging and dropping a file on to the Launcher, the Launcher icons that are valid drop receptacles don't highlight until the cursor is over the launcher.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ayatana Design |
Fix Released
|
Critical
|
John Lea | ||
Unity |
Fix Released
|
Medium
|
Andrea Azzarone | ||
unity (Ubuntu) |
Fix Released
|
Medium
|
Andrea Azzarone |
Bug Description
Update - Implementation test results.
This now works for long sustained drags of files, but for some reason is not consistently triggered by short sharp drags using a trackpad. To reproduce this issue:
1. Make sure Firefox is in the Launcher, and Nautilus is open on a folder containing a .png file
2. 'Left click hold' on the .png file and drag it in a sharp 'drag and stop' action using the trackpad.
Result: the launcher is unaffected 80% of the time. I am assuming this issue is caused is because there is a issue detecting short sharp d&d movements.
The desired resolution would be for the detection of a d&d and the corresponding change in Launcher state to be more rapid, so that drag actions that start and stop inside a timespan of roughly 50ms (or more) are detected.
-------
As soon as the user starts dragging a file, the Launcher icons that are valid drop receptacles should instantly become highlighted. Icons that are not valid drop receptacles should disappear so that only app icons that are valid drop receptacles are shown.
This needs to happen the instant a user starts dragging a file, regardless of the position of the file on the desktop.
=======
This bug would be an ideal bug for someone to get started hacking on Unity, here's some information:
* Time to fix: 10h
* Difficulty: normal
* Implementation:
Implementation of this feature is evil due to the nature of XDND.
Short version: When a dnd situation is detected, quickly pop up a new X window (using a nux BaseWindow is the simplest method), collect the required DND information for the launcher to make a descision, then pop down the window as quickly as possible.
Long version:
Create a new BaseWindow type class used purely to collect DND information, called DNDCollectionWi
DNDCollectionWi
void DNDCollectionWi
std::list<char *> DNDCollectionWi
and a signal
DNDCollectionWi
The window should pop down as fast as possible (but still retain the data). Collection will look specifically for a text/uri-list, as that is the only data relevant to the launcher, and retrieve that data directly for processing by the launcher. If no text/uri-list is available, the collected signal will still fire, but GetUriList should return an empty list.
Once the data is retrieved, it can be used by the launcher to shade launcher icons even before the hover starts. It is important to note that even though the launcher already has the data, it should collect the data a second time as the drag enters the launchers own XWindow. This is to ensure the data has not changed in the mean time (it is allowed to under the XDND specification).
* Where to look: src/Launcher.cpp
* Workflow information: http://
Related branches
- Jason Smith (community): Approve
-
Diff: 1269 lines (+524/-203)14 files modifiedplugins/unityshell/src/AbstractLauncherIcon.h (+4/-2)
plugins/unityshell/src/BamfLauncherIcon.cpp (+99/-69)
plugins/unityshell/src/BamfLauncherIcon.h (+11/-5)
plugins/unityshell/src/DNDCollectionWindow.cpp (+63/-0)
plugins/unityshell/src/DNDCollectionWindow.h (+55/-0)
plugins/unityshell/src/DndData.cpp (+63/-0)
plugins/unityshell/src/DndData.h (+71/-0)
plugins/unityshell/src/Launcher.cpp (+120/-94)
plugins/unityshell/src/Launcher.h (+10/-8)
plugins/unityshell/src/LauncherIcon.cpp (+2/-2)
plugins/unityshell/src/LauncherIcon.h (+10/-8)
plugins/unityshell/src/MockLauncherIcon.h (+2/-2)
plugins/unityshell/src/TrashLauncherIcon.cpp (+11/-11)
plugins/unityshell/src/TrashLauncherIcon.h (+3/-2)
- Jason Smith (community): Approve
-
Diff: 255 lines (+74/-22)6 files modifiedplugins/unityshell/src/DNDCollectionWindow.cpp (+40/-7)
plugins/unityshell/src/DNDCollectionWindow.h (+10/-2)
plugins/unityshell/src/Launcher.cpp (+19/-12)
plugins/unityshell/src/Launcher.h (+1/-0)
plugins/unityshell/src/LauncherModel.cpp (+3/-0)
plugins/unityshell/src/PluginAdapter.h (+1/-1)
Changed in ayatana-design: | |
status: | New → Fix Committed |
importance: | Undecided → Critical |
assignee: | nobody → John Lea (johnlea) |
tags: | added: udt |
Changed in unity (Ubuntu): | |
status: | New → Triaged |
Changed in unity: | |
milestone: | 3.8 → 3.8.2 |
Changed in unity: | |
assignee: | nobody → Didier Roche (didrocks) |
tags: | added: ffe |
Changed in unity: | |
assignee: | nobody → Jason Smith (jassmith) |
Changed in unity (Ubuntu): | |
assignee: | nobody → Jason Smith (jassmith) |
tags: | added: udo |
description: | updated |
Changed in unity: | |
importance: | Low → Medium |
Changed in unity: | |
milestone: | backlog → ux-backlog-2 |
description: | updated |
description: | updated |
description: | updated |
Changed in unity: | |
milestone: | ux-backlog-2 → backlog |
assignee: | Jason Smith (jassmith) → Unity Community Hackers (unity-community-hackers) |
tags: | added: backlog |
Changed in unity: | |
assignee: | Unity Community Hackers (unity-community-hackers) → Andrea Azzarone (andyrock) |
Changed in unity (Ubuntu): | |
assignee: | Jason Smith (jassmith) → Andrea Azzarone (andyrock) |
Changed in unity: | |
status: | Triaged → In Progress |
Changed in unity (Ubuntu): | |
status: | Triaged → In Progress |
Changed in unity (Ubuntu): | |
importance: | Undecided → Medium |
Changed in unity: | |
status: | In Progress → Fix Committed |
Changed in unity (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in unity (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in unity: | |
status: | Fix Released → Fix Committed |
description: | updated |
description: | updated |
Changed in unity: | |
status: | Fix Committed → Confirmed |
Changed in unity (Ubuntu): | |
status: | Fix Released → Confirmed |
Changed in unity: | |
status: | In Progress → Fix Released |
status: | Fix Released → Fix Committed |
Changed in unity (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in unity (Ubuntu): | |
status: | Fix Committed → Fix Released |
tags: |
added: reviewedbydesigno removed: udo udt |
Changed in unity: | |
milestone: | backlog → none |
Related to https:/ /bugs.launchpad .net/ayatana- design/ +bug/723882