0.1.5
가상화를 켠 그리드에서 채우기 핸들을 길게 끌면 드래그가 중간에 끊기던 문제를 고칩니다.
가상화 그리드에서 채우기 드래그가 중간에 끊기던 문제
행 가상화(virtualization.rows)를 켠 그리드에서 채우기 핸들을 잡고 아래로 길게 끌면, 어느 순간 미리보기 점선이 그 자리에 멈춘 채 커서를 따라오지 않았습니다.
거기서 손을 떼도 아무것도 채워지지 않았고, 스크롤을 위로 되돌려도 핸들이 다시 나타나지 않았습니다. 다른 셀을 클릭해도 회복되지 않아, 그리드를 다시 마운트하기 전까지 채우기를 쓸 수 없었습니다. 컬럼 가상화(virtualization.columns)를 켜고 오른쪽으로 길게 끄는 경우도 같았습니다.
끊기는 지점은 채우기의 출발 셀이 화면 밖으로 밀려나는 순간이었습니다. 핸들은 출발 범위의 오른쪽 아래 셀 안에 그려지는데, 아래로 끌면 그 셀은 제자리에 있으므로 위로 밀려 올라가고, 가상화 창(overscan, 기본 8행)을 벗어나면 화면에서 제거됩니다. 드래그를 추적하던 이벤트 연결이 그 셀에 매여 있었기 때문에 제스처 한복판에서 함께 끊어졌습니다. 그때 미리보기와 드래그 상태가 정리되지 않은 채 남아 점선이 잔류하고 핸들이 돌아오지 않았습니다.
이제 드래그는 셀이 아니라 포인터를 기준으로 이어집니다. 출발 셀이 화면 밖으로 나가도 미리보기가 커서를 계속 따라오고, 손을 떼면 화면 밖 구간까지 한 번에 채워집니다. 채운 뒤에는 선택이 채운 영역 전체로 확장되고 그 오른쪽 아래에 핸들이 다시 나타납니다. 선택 안쪽으로 되끌어 비우는 역방향 드래그도 같습니다.
0.1.0부터 이 버전 직전까지 모두 해당합니다. 가상화를 쓰지 않는 그리드는 영향이 없습니다. 모든 행이 항상
화면에 있어 출발 셀이 제거될 일이 없기 때문입니다.
함께 바뀐 동작
드래그 도중 그리드 자체가 화면에서 사라지면(예: 그리드를 담은 모달이 닫히는 경우) 채우기가 취소됩니다. 화면에 없는 그리드에 값이 들어가지 않습니다.
공개 API는 바뀌지 않았습니다. 버전만 올리면 됩니다.