This patch implements the ability to change the order of buttons on taskbar by dragging them with mouse.
You will notice that the button's action such as iconifying or restoring window always is triggered at the beginning of the dragging. This is because the action is triggered when the mouse button is pressed, not when it is released, which is more common.
If you complete the dragging very quickly, before the button's action is completed, then the dragging fails.
Attached are 2 patches. One is for LXPanel version 0.6.2, which is the latest released version. The other is for the latest source code in the git repository.
Buttons that represent a group of windows cannot be normally dragged. The workaround is:
1) Click on the button so that a popup menu with the window list will appear.
2) Drag an item in the popup menu down to the button. Note that the popup menu will disappear at the beginning of this dragging and the mouse pointer will not indicate that dragging is in progress. Once the mouse reaches the button, the dragging of that button starts and the mouse pointer will change to indicate that dragging is in progress.
3) Finish the dragging by first moving the mouse over another button and then releasing mouse button.
Here is someone's feature request which is requesting what I have implemented:
This patch adds only 64 lines of code to 3 files, so it certainly will not make LXPanel bloated.