Bug 322567 - taskmanager no longer allows to drag a task
Summary: taskmanager no longer allows to drag a task
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: widget-taskbar (show other bugs)
Version: 4.10.95
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-19 12:18 UTC by Martin Koller
Modified: 2013-09-02 00:22 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.11.1


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Koller 2013-07-19 12:18:31 UTC
I found the following regression in 4.11 RC1 compared to 4.10.5:

I can no longer move (drag) a task from the taskmanager onto a different desktop in the pager widget.
This was a very convenient way to move a window from one virtual desktop to another, but this feature got lost in transition...

Reproducible: Always
Comment 1 Eike Hein 2013-07-27 15:25:31 UTC
This is caused by Plasma's QML bindings too Qt's drag and drop system having no support for byte data payloads for drag events, so I was unable to retain the window ids in the drag event that the pager responds to. I don't think this will be fixed in time for 4.11 - the only way to fix it is to fork quite a bit of libplasma code to expose the right setters, because Plasma's QML 1 components have been feature-frozen. This is pretty fugly. It might have to wait for Plasma 2.
Comment 2 Eike Hein 2013-07-27 18:08:31 UTC
I've proposed a patch for libplasma2 to fix the drag data component to support what we need here: https://git.reviewboard.kde.org/r/111748/

I've also asked to be able to backport it to 4.11. If it's granted, I can restore support for this - but with the time table as it is, probably not before 4.11.1, sorry.
Comment 3 Eike Hein 2013-08-06 10:01:50 UTC
Git commit f63357bd29944c777de2954289d9573922fe8222 by Eike Hein.
Committed on 06/08/2013 at 09:59.
Pushed by hein into branch 'master'.

Make the setData() accessor take a QVariant as payload.

The implementation now specifically tries to support byte arrays
being passed in, which is what the base class speaks. To try and
retain the previous behavior anything else is attempted to be
converted to a string and failing that, silently dropped.

REVIEW:111748

M  +6    -2    src/declarativeimports/draganddrop/DeclarativeMimeData.cpp
M  +1    -1    src/declarativeimports/draganddrop/DeclarativeMimeData.h

http://commits.kde.org/plasma-framework/f63357bd29944c777de2954289d9573922fe8222
Comment 4 Eike Hein 2013-08-14 14:22:19 UTC
Git commit 7b69cd2f6c28a088c886a51549005b8edcbb91f1 by Eike Hein.
Committed on 14/08/2013 at 14:21.
Pushed by hein into branch 'KDE/4.11'.

Make the setData() accessor take a QVariant as payload.

The implementation now specifically tries to support byte arrays
being passed in, which is what the base class speaks. To try and
retain the previous behavior anything else is attempted to be
converted to a string and failing that, silently dropped.

Backport from plasma-framework f63357bd and reviewed in 111748.

M  +6    -2    plasma/declarativeimports/draganddrop/DeclarativeMimeData.cpp
M  +1    -1    plasma/declarativeimports/draganddrop/DeclarativeMimeData.h

http://commits.kde.org/kde-runtime/7b69cd2f6c28a088c886a51549005b8edcbb91f1
Comment 5 Eike Hein 2013-08-14 14:32:09 UTC
Git commit e7b8ac8397721f7870ccb2158275afe4a463878f by Eike Hein.
Committed on 14/08/2013 at 14:24.
Pushed by hein into branch 'KDE/4.11'.

Add back window ids to the drag data payload.

This e.g. makes dropping tasks on the pager work again.

M  +17   -0    libs/taskmanager/tasksmodel.cpp
M  +3    -1    libs/taskmanager/tasksmodel.h
M  +4    -0    plasma/desktop/applets/tasks/package/contents/ui/Task.qml

http://commits.kde.org/kde-workspace/e7b8ac8397721f7870ccb2158275afe4a463878f
Comment 6 Eike Hein 2013-09-02 00:22:13 UTC
Git commit 89ece2a63ab661d59fa3590a15c96f974161c81a by Eike Hein.
Committed on 14/08/2013 at 14:24.
Pushed by hein into branch 'frameworks-scratch'.

Add back window ids to the drag data payload.

This e.g. makes dropping tasks on the pager work again.

M  +17   -0    libs/taskmanager/tasksmodel.cpp
M  +3    -1    libs/taskmanager/tasksmodel.h
M  +4    -0    plasma/desktop/applets/tasks/package/contents/ui/Task.qml

http://commits.kde.org/kde-workspace/89ece2a63ab661d59fa3590a15c96f974161c81a