Index: containments/desktop/plugins/folder/positioner.h =================================================================== --- containments/desktop/plugins/folder/positioner.h +++ containments/desktop/plugins/folder/positioner.h @@ -134,6 +134,7 @@ QStringList m_positions; bool m_deferApplyPositions; + QVariantList m_deferMovePositions; QTimer *m_updatePositionsTimer; QHash m_proxyToSource; Index: containments/desktop/plugins/folder/positioner.cpp =================================================================== --- containments/desktop/plugins/folder/positioner.cpp +++ containments/desktop/plugins/folder/positioner.cpp @@ -364,6 +364,7 @@ void Positioner::move(const QVariantList &moves) { // Don't allow moves while listing. if (m_folderModel->status() == FolderModel::Listing) { + m_deferMovePositions = moves; return; } @@ -491,6 +492,11 @@ if (m_deferApplyPositions && m_folderModel->status() != FolderModel::Listing) { applyPositions(); } + + if (m_deferMovePositions.count() && m_folderModel->status() != FolderModel::Listing) { + move(m_deferMovePositions); + m_deferMovePositions.clear(); + } } void Positioner::sourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,