mirror of https://github.com/helix-editor/helix
check selection's visible width when copying on mouse click (#2711)
* check selection's visible width when copying on mouse click Mouse-click-up copies the selection produced by dragging. The event is ignored if the selection has a width of 1 though so you don't copy when clicking rather than dragging. The current check copies text when it has a visible width of 1 but is actually multiple characters in the rope like a CRLF line-ending. With this change we check the unicode width of the character(s) in the selection rather than the range length, so clicking on a CRLF line-ending does not copy. * use range.fragment to simplify getting the primary selection widthpull/2872/head
parent
886cff3bcc
commit
d948ace67b
|
@ -1127,9 +1127,14 @@ impl EditorView {
|
|||
}
|
||||
|
||||
let (view, doc) = current!(cxt.editor);
|
||||
let range = doc.selection(view.id).primary();
|
||||
|
||||
if range.to() - range.from() <= 1 {
|
||||
if doc
|
||||
.selection(view.id)
|
||||
.primary()
|
||||
.fragment(doc.text().slice(..))
|
||||
.width()
|
||||
<= 1
|
||||
{
|
||||
return EventResult::Ignored(None);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue