Fix editor selection issue (#4110)

Release Notes:

- Fixes a bug where, editor selections would update in the wrong pane
when split.
This commit is contained in:
Mikayla Maki 2024-01-17 17:16:56 -08:00 committed by GitHub
commit 933fb87013
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -456,6 +456,7 @@ impl EditorElement {
event: &MouseUpEvent,
position_map: &PositionMap,
text_bounds: Bounds<Pixels>,
interactive_bounds: &InteractiveBounds,
stacking_order: &StackingOrder,
cx: &mut ViewContext<Editor>,
) {
@ -466,7 +467,8 @@ impl EditorElement {
editor.select(SelectPhase::End, cx);
}
if !pending_nonempty_selections
if interactive_bounds.visibly_contains(&event.position, cx)
&& !pending_nonempty_selections
&& event.modifiers.command
&& text_bounds.contains(&event.position)
&& cx.was_top_layer(&event.position, stacking_order)
@ -2542,15 +2544,14 @@ impl EditorElement {
let interactive_bounds = interactive_bounds.clone();
move |event: &MouseUpEvent, phase, cx| {
if phase == DispatchPhase::Bubble
&& interactive_bounds.visibly_contains(&event.position, cx)
{
if phase == DispatchPhase::Bubble {
editor.update(cx, |editor, cx| {
Self::mouse_up(
editor,
event,
&position_map,
text_bounds,
&interactive_bounds,
&stacking_order,
cx,
)