Asset drag and drop #3

Closed
opened 2026-09-12 15:03:49 +02:00 by admin · 0 comments

momentan funktioniert das platzieren eines asset in der scene/container per "Place in ..." über das kontextmenü.
zukünftig soll es per drag and drop passieren


Umgesetzt (2026-09-09). Drag and Drop ersetzt den Menueintrag vollstaendig — auf deine
Ansage hin ist "Place in scene"/"Place in container" aus dem Kontextmenue verschwunden.
Doppelklick auf die Zeile platzierte zunaechst weiterhin in die Mitte der Ansicht — auf deine Notiz
asset-doppelklick.md hin ist auch das entfernt.

  • Ziehen: die Zeile im Assets-Panel wird nach 4 px Weg zum Drag; ein Ghost mit dem
    Asset-Namen haengt am Cursor (src/ui/drag.ts). Die ListView erkennt die Geste nur und
    gibt sie per onDragOut nach aussen ab — sie kennt kein Ziel ausserhalb ihrer selbst.
  • Vorschau: ueber einer Ansicht zeigt ein Umriss die Groesse, die das Objekt haben wird,
    plus Fadenkreuz auf dem Ursprung. Rot = der Drop wird abgelehnt.
  • Ziel: die Ansicht unter dem Zeiger, nicht der aktive Tab. Scene-Tab → aktive Szene,
    Container-Tab → offene Vorlage. ContainerCanvas erbt das von SceneViewport.
  • Regel: placementRejection (src/core/model/placement.ts) — dieselbe Funktion, die
    PlaceAssetCommand ausfuehrt. Die Vorschau kann also nichts versprechen, was der Drop
    danach verweigert. Heute lehnt sie ab: Szenen und Container, die in sich selbst landen.

Zwei Fallen, die beim Bauen erst sichtbar wurden:

  1. Ein Drag beginnt mit einem Linksklick, und der selektiert die Zeile — der Container-Tab
    folgte der Selektion und haette sich mitten im Drag auf genau den Container umgeschaltet,
    der gerade gezogen wird. Das Ziel waere unter dem Zeiger weggerutscht und jeder Drop haette
    sich selbst verschachtelt. followSelection haelt jetzt still, solange ein Drag laeuft.
    Vorher schuetzte davor der Rechtsklick, der nicht selektiert; mit Drag&Drop trug das nicht mehr.
  2. Ein Drag endet oft dort, wo die Zielansicht nichts davon mitbekommt (ueber einem anderen
    Panel, ausserhalb des Canvas). Ohne onDragChange waere die Vorschau stehengeblieben.

Übernommen aus todo-notes/done/asset-drag-and-drop.md beim Umzug auf das Issue-System (2026-09-12).

  • Angelegt: 2026-09-09 · 633f01c — Add five notes raised while the override work was running
  • Abgeschlossen: 2026-09-09 · d7c8d3e — Measure a deviation against the base, not the innermost template
  • Commits dazwischen: 75d377a Place assets by dragging them from the panel into the view
  • Gemeldet von: admin
momentan funktioniert das platzieren eines asset in der scene/container per "Place in ..." über das kontextmenü. zukünftig soll es per drag and drop passieren --- **Umgesetzt (2026-09-09).** Drag and Drop ersetzt den Menueintrag vollstaendig — auf deine Ansage hin ist "Place in scene"/"Place in container" aus dem Kontextmenue verschwunden. Doppelklick auf die Zeile platzierte zunaechst weiterhin in die Mitte der Ansicht — auf deine Notiz `asset-doppelklick.md` hin ist auch das entfernt. - **Ziehen:** die Zeile im Assets-Panel wird nach 4 px Weg zum Drag; ein Ghost mit dem Asset-Namen haengt am Cursor (`src/ui/drag.ts`). Die `ListView` erkennt die Geste nur und gibt sie per `onDragOut` nach aussen ab — sie kennt kein Ziel ausserhalb ihrer selbst. - **Vorschau:** ueber einer Ansicht zeigt ein Umriss die **Groesse**, die das Objekt haben wird, plus Fadenkreuz auf dem Ursprung. Rot = der Drop wird abgelehnt. - **Ziel:** die Ansicht unter dem Zeiger, nicht der aktive Tab. Scene-Tab → aktive Szene, Container-Tab → offene Vorlage. `ContainerCanvas` erbt das von `SceneViewport`. - **Regel:** `placementRejection` (`src/core/model/placement.ts`) — dieselbe Funktion, die `PlaceAssetCommand` ausfuehrt. Die Vorschau kann also nichts versprechen, was der Drop danach verweigert. Heute lehnt sie ab: Szenen und Container, die in sich selbst landen. **Zwei Fallen, die beim Bauen erst sichtbar wurden:** 1. Ein Drag beginnt mit einem **Linksklick**, und der selektiert die Zeile — der Container-Tab folgte der Selektion und haette sich mitten im Drag auf genau den Container umgeschaltet, der gerade gezogen wird. Das Ziel waere unter dem Zeiger weggerutscht und jeder Drop haette sich selbst verschachtelt. `followSelection` haelt jetzt still, solange ein Drag laeuft. Vorher schuetzte davor der Rechtsklick, der nicht selektiert; mit Drag&Drop trug das nicht mehr. 2. Ein Drag endet oft dort, wo die Zielansicht **nichts davon mitbekommt** (ueber einem anderen Panel, ausserhalb des Canvas). Ohne `onDragChange` waere die Vorschau stehengeblieben. --- *Übernommen aus `todo-notes/done/asset-drag-and-drop.md` beim Umzug auf das Issue-System (2026-09-12).* - **Angelegt:** 2026-09-09 · `633f01c` — Add five notes raised while the override work was running - **Abgeschlossen:** 2026-09-09 · `d7c8d3e` — Measure a deviation against the base, not the innermost template - **Commits dazwischen:** `75d377a` Place assets by dragging them from the panel into the view - **Gemeldet von:** admin
admin added the todo-note label 2026-09-12 15:03:49 +02:00
admin closed this issue 2026-09-12 15:03:49 +02:00
admin added this to the Development project 2026-09-13 13:43:29 +02:00
admin moved this to Done in Development on 2026-09-13 13:44:59 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#3