Code intended to prevent errors was also creating an offset between
the source and target regions. The source region needs to be adjusted
to match the clipped target region.
There are known knowns, and unknown knowns, and also known unknowns,
and unknown unknowns, but this is a now-no-longer-known-unknown-now-known-known, y'know? (I don't not not not not not not know.)
Note: This doesn't cut out the selection if you haven't dragged it yet,
with the mouse. It should probably be equivalent to mouse dragging, but
this current behavior could be useful too.
This was broken in "Fix a type checker error" e62064a307
where I just added `and self.offset_at_drag_start`.
The problem is that Offset defines __bool__ and are falsy when (0,0),
and the windows, despite starting out in the center, initially have an
offset of (0,0) FROM this center position.
I have a bad habit of not actually using the software I create, but
whilst perhaps I should have gone to bed, this was a delight to create,
the childlike joy of picking blocks together to form an image, imagining
what I could do with different pieces, and putting silly smiley faces
in as the crew and making them all different colors.
I didn't look at any reference while drawing this, so... it doubtless
contains many inaccuracies.
But that's rather beside the point, isn't it?
Aside from just having fun with it, I observed that the Pick Color tool
is vastly more important than in a raster workflow, since it picks not
just a color, but two colors and a character! And I would really like
the Color Eraser feature. I would sometimes use the wrong blue to match
the sky and then have to Pick Color, change color, and replace the cell,
one by one, whereas the Color Eraser should take care of that.
It's a little awkward selecting colors with Ctrl click, with it
not showing the foreground color (Input doesn't seem to support it), and
with the cognitive dissonance between the background vs foreground
here vs in MS Paint. Other than that, it worked splendidly.