Not nice vertical carets line for CJK chars
problem in SColumnPosToCharPos, it use Length(S) to get character number, and then return a position for caret,
but CJK and ASCII/Latin characters are different width, so when all column selected rows are ASCII/LATIN or CJK only, its position of CaretPosToClientPos will correct,
but mixing will not correct.
may be a simple solution for this problem is: all caret Y position in column select just same as the beginning position.
then when _DoCaretPosToClientPos:
if pos in CJK then
caret draw after CJK
else
normal ASCII/LATIN caret draw
but CJK and ASCII/Latin characters are different width, so when all column selected rows are ASCII/LATIN or CJK only, its position of CaretPosToClientPos will correct,
but mixing will not correct.
may be a simple solution for this problem is: all caret Y position in column select just same as the beginning position.
then when _DoCaretPosToClientPos:
if pos in CJK then
caret draw after CJK
else
normal ASCII/LATIN caret draw
1.64.4 has enhanced but from mixing CJK to pure LATIN still not correct.
i think, column select block, that can simple just mark down the 2 corner ClientPos and its Row position, when render screen,
if a char it render inside this rectangle, then render it different. and mark down the "from" "to" pos
when copy click, just using this pos, can easy handle.
this is my terminal program did.
ColumnPosToCharPos and STabsToSpaces_Length, this two function waste times for calculating. and do just 2 line block selecting, will
happend so many time calculations, this is why CUDA much slower selections compare to NP++ or AKELPAD
i think, column select block, that can simple just mark down the 2 corner ClientPos and its Row position, when render screen,
if a char it render inside this rectangle, then render it different. and mark down the "from" "to" pos
when copy click, just using this pos, can easy handle.
this is my terminal program did.
ColumnPosToCharPos and STabsToSpaces_Length, this two function waste times for calculating. and do just 2 line block selecting, will
happend so many time calculations, this is why CUDA much slower selections compare to NP++ or AKELPAD