refactor(ui): clean up task-row drag visuals

Collapse the grabbed row out of layout instead of overlapping neighbors
with scale/opacity/shadow (the ghost window already shows the moving
snapshot). Replace the thin moss drop-hint lines with a dashed
placeholder gap sized like a collapsed row. Suppress the ordinary hover
highlight and transitions on whatever row is currently the drop target
so it doesn't read as "clickable" while dragging.
This commit is contained in:
mika kuns
2026-08-10 13:58:40 +02:00
parent e98cf46097
commit 359bb3a439
4 changed files with 52 additions and 13 deletions
@@ -7,15 +7,16 @@
x:DataType="vm:TaskRowViewModel">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="6"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Above-row indicator: lives in the 6px gap between cards -->
<Border Grid.Row="0" Height="2" VerticalAlignment="Center" Margin="4,0"
Background="{DynamicResource MossBrush}" CornerRadius="1"
IsVisible="{Binding DropHintAbove}"/>
<!-- Above-row indicator: dashed placeholder gap showing where the dragged row will land -->
<Grid Grid.Row="0" Height="52" IsVisible="{Binding DropHintAbove}">
<Rectangle Margin="4,3" Stroke="{DynamicResource MossBrush}" StrokeThickness="1.5"
StrokeDashArray="4,3" Fill="Transparent" RadiusX="8" RadiusY="8"/>
</Grid>
<!-- Indent wrapper: col 0 = 24px child indent track, col 1 = content -->
<Grid Grid.Row="1" ColumnDefinitions="Auto,*">
@@ -31,6 +32,7 @@
Margin="0"
Classes.selected="{Binding IsSelected}"
Classes.dragging="{Binding IsDragging}"
Classes.drop-target="{Binding IsDropTarget}"
Classes.done="{Binding Done}"
ContextRequested="OnRowContextRequested">
<Grid ColumnDefinitions="0,18,32,*,Auto,Auto,32" Margin="6,8,10,8">
@@ -202,9 +204,9 @@
</Grid>
<!-- Below-row indicator: only expands when visible (used for the last row of a section) -->
<Grid Grid.Row="2" Height="6" IsVisible="{Binding DropHintBelow}">
<Border Height="2" VerticalAlignment="Center" Margin="4,0"
Background="{DynamicResource MossBrush}" CornerRadius="1"/>
<Grid Grid.Row="2" Height="52" IsVisible="{Binding DropHintBelow}">
<Rectangle Margin="4,3" Stroke="{DynamicResource MossBrush}" StrokeThickness="1.5"
StrokeDashArray="4,3" Fill="Transparent" RadiusX="8" RadiusY="8"/>
</Grid>
<!-- Hidden schedule anchor (its Flyout is shown from the context menu) -->