Fix editor selection issue (#4110)

Mikayla Maki created

Release Notes:

- Fixes a bug where, editor selections would update in the wrong pane
when split.

Change summary

crates/editor/src/element.rs | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Detailed changes

crates/editor/src/element.rs 🔗

@@ -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,
                         )