Bug 411098 - Allow drag and drop hidden systray items to the systray
Summary: Allow drag and drop hidden systray items to the systray
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: System Tray (show other bugs)
Version: master
Platform: Other Linux
: NOR wishlist
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-20 12:44 UTC by Hans-Peter Jansen
Modified: 2020-10-23 18:01 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hans-Peter Jansen 2019-08-20 12:44:15 UTC
Sometimes, you want a certain systray item, that is hidden by default, to be always shown. It's a bit tedious to right click on systray arrow, select properties, select entries, search entry, switch to shown, ok.

Win10 allows to drag those items to the systray, and we should allow this as well, shouldn't we?
Comment 1 David Edmundson 2019-08-20 12:48:31 UTC
Tedious maybe, but it's something you'd probably only ever do once. 

The challenge of drag and drop is we're moving something tri-state:
  - always shown
  - always hidden
  - determined by the icon itself (default)

Conveying that through D&D would be tricky and needs a plan first.
Comment 2 Hans-Peter Jansen 2019-08-20 14:42:57 UTC
Hi David, thanks for the feedback.

> The challenge of drag and drop is we're moving something tri-state:
>  - always shown
>  - always hidden
>  - determined by the icon itself (default)

Well, the items, that are dragged into the systray area could and should be switched to always on.. Why caring about a former state?
Comment 3 Nate Graham 2020-01-15 20:21:24 UTC
A thing that's in the expanded pop-up is going to be in the "Always hidden" or "auto-show" state; it will never be in the "always shown" state. So I think if we implement DND, the most obvious way to do it would be to make the items that are dragged-and-dropped into the active zone just be "always shown".
Comment 4 David Edmundson 2020-01-15 20:28:08 UTC
But what about when you drag the other way?
Comment 5 Nate Graham 2020-01-15 20:52:36 UTC
Easiest overall solution is to only allow one-way drag-and-drop.

For bi-directional drag-and-drop, I think dragging an applet into the popup should always cause the applet to enter "always hidden" state, on the assumption that this is most likely the user's intention, and also because if it was previously "always shown" and could enter "auto-show" state, then the drag-and-drop operation might appear to do nothing if the auto-show condition was still true.
Comment 6 Nate Graham 2020-01-15 20:53:07 UTC
So basically, DND would be exclusively for the purpose of switching between "always show" and "always hide" states.
Comment 7 David Edmundson 2020-01-15 20:54:14 UTC
>Easiest overall solution is to only allow one-way drag-and-drop.

The danger with that is if you have asymmetric patterns you can have users drag things across one way but with no visible undo process without having to learn something new. I don't think that works.
Comment 8 Nate Graham 2020-01-15 21:05:19 UTC
That's true, you're right.
Comment 9 Konrad Materka 2020-10-23 18:01:38 UTC
I'm think about implementing this.
Firstly, it requires "edit" mode, as it is not possible to handle drag events easily with current feature - for example press&hold now opens a context menu for SNI icons.
In edit mode whole system tray can behave differently. For example we can mimic the logic of panel editing. So that, on mouse over, we can show:
* overlay "move" icon over the tray icon
* menu for each icon with options "always shown", "shown when needed", "always hiddes", maybe "disabled" (?) - any other?
* other ideas, probably we need VDG for suggestions