diff --git a/applets/kicker/package/contents/ui/ItemGridView.qml b/applets/kicker/package/contents/ui/ItemGridView.qml --- a/applets/kicker/package/contents/ui/ItemGridView.qml +++ b/applets/kicker/package/contents/ui/ItemGridView.qml @@ -131,7 +131,7 @@ if (item !== kicker.dragSource) { item.GridView.view.model.moveRow(dragSource.itemIndex, item.itemIndex); } - } else if (kicker.dragSource.view.model.favoritesModel === model + } else if (kicker.dragSource.GridView.view.model.favoritesModel === model && !model.isFavorite(kicker.dragSource.favoriteId)) { var hasPlaceholder = (model.dropPlaceholderIndex !== -1); @@ -142,7 +142,7 @@ } } } else if (kicker.dragSource.parent !== gridView.contentItem - && kicker.dragSource.view.model.favoritesModel === model + && kicker.dragSource.GridView.view.model.favoritesModel === model && !model.isFavorite(kicker.dragSource.favoriteId)) { var hasPlaceholder = (model.dropPlaceholderIndex !== -1); @@ -165,7 +165,7 @@ } onDrop: { - if (kicker.dragSource && kicker.dragSource.parent !== gridView.contentItem && kicker.dragSource.view.model.favoritesModel === model) { + if (kicker.dragSource && kicker.dragSource.parent !== gridView.contentItem && kicker.dragSource.GridView.view.model.favoritesModel === model) { model.addFavorite(kicker.dragSource.favoriteId, model.dropPlaceholderIndex); gridView.currentIndex = -1; } @@ -410,25 +410,28 @@ onReleased: { mouse.accepted = true; + var item = updatePositionProperties(mouse.x, mouse.y); + + if (item === undefined) { + if (gridView.currentItem && gridView.currentItem == pressedItem) { + if ("trigger" in gridView.model) { + gridView.model.trigger(pressedItem.itemIndex, "", null); + root.toggle(); + } - if (gridView.currentItem && gridView.currentItem == pressedItem) { - if ("trigger" in gridView.model) { - gridView.model.trigger(pressedItem.itemIndex, "", null); + itemGrid.itemActivated(pressedItem.itemIndex, "", null); + } else if (!pressedItem && mouse.button == Qt.LeftButton) { root.toggle(); } - - itemGrid.itemActivated(pressedItem.itemIndex, "", null); - } else if (!pressedItem && mouse.button == Qt.LeftButton) { - root.toggle(); } pressX = -1; pressY = -1; pressedItem = null; } onPositionChanged: { - var item = updatePositionProperties(mouse.x, mouse.y); + var item = pressedItem? pressedItem : updatePositionProperties(mouse.x, mouse.y); if (gridView.currentIndex != -1) { if (dragEnabled && pressX != -1 && dragHelper.isDrag(pressX, pressY, mouse.x, mouse.y)) {