Review everything shipped this weekend, and fix what the reviewers caught
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
// mirroring, rather than drawing it wherever its stale coordinates point.
|
||||
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import qs.config
|
||||
import qs.widgets
|
||||
import "../../services/DisplayLayout.js" as DisplayLayout
|
||||
@@ -198,7 +199,20 @@ Item {
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: root.tiles
|
||||
// Keyed on the output name rather than fed the array directly.
|
||||
// Every drag step and every arrow key rewrites draftLayout,
|
||||
// which rebuilds `tiles` into a fresh array of fresh objects --
|
||||
// a new model, which resets the Repeater and destroys the tile
|
||||
// being dragged on its first millimetre of travel. The drag
|
||||
// ended there, silently, and nothing was ever applied; the
|
||||
// arrow keys lost focus after a single step for the same
|
||||
// reason. Keyed, the same rebuild is "this row moved", and the
|
||||
// tile under the pointer keeps its handler and its focus.
|
||||
model: ScriptModel {
|
||||
values: root.tiles
|
||||
objectProp: "name"
|
||||
comparisonMode: ObjectComparison.Structure
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: tile
|
||||
|
||||
Reference in New Issue
Block a user