@@ -7,11 +7,11 @@ import {
7
7
TextEditorElement ,
8
8
CommandEvent ,
9
9
CursorPositionChangedEvent ,
10
- TextEditorComponent ,
11
10
} from "atom"
12
11
import type { Datatip , DatatipProvider } from "atom-ide-base"
13
12
import { ViewContainer } from "atom-ide-base/commons-ui/float-pane/ViewContainer"
14
13
import { ProviderRegistry } from "atom-ide-base/commons-atom/ProviderRegistry"
14
+ import { makeOverlaySelectable , copyListener } from "atom-ide-base/commons-ui/float-pane/selectable-overlay"
15
15
16
16
export class DataTipManager {
17
17
/**
@@ -476,8 +476,8 @@ export class DataTipManager {
476
476
invalidate : "never" ,
477
477
} )
478
478
479
- // makes the text selectable with the help of user-select: text
480
- element . setAttribute ( "tabindex" , "-1" )
479
+ // makes overlay selectable
480
+ makeOverlaySelectable ( editor , element )
481
481
482
482
editor . decorateMarker ( overlayMarker , {
483
483
type : "overlay" ,
@@ -487,8 +487,6 @@ export class DataTipManager {
487
487
} )
488
488
disposables . add ( new Disposable ( ( ) => overlayMarker . destroy ( ) ) )
489
489
490
- const editorComponent = atom . views . getView ( editor ) . getComponent ( )
491
-
492
490
element . addEventListener ( "mouseenter" , ( ) => {
493
491
this . editorView ?. removeEventListener ( "mousemove" , this . onMouseMoveEvt )
494
492
element . addEventListener ( "keydown" , copyListener )
@@ -499,17 +497,6 @@ export class DataTipManager {
499
497
element . removeEventListener ( "keydown" , copyListener )
500
498
} )
501
499
502
- /**
503
- - focus on the datatip once the text is selected (cursor gets disabled temporarily)
504
- - remove focus once mouse leaves
505
- */
506
- element . addEventListener ( "mousedown" , ( ) => {
507
- blurEditor ( editorComponent )
508
- element . addEventListener ( "mouseleave" , ( ) => {
509
- focusEditor ( editorComponent )
510
- } )
511
- } )
512
-
513
500
// TODO move this code to atom-ide-base
514
501
element . addEventListener ( "wheel" , this . onMouseWheel , { passive : true } )
515
502
@@ -532,25 +519,3 @@ export class DataTipManager {
532
519
this . dataTipMarkerDisposables = null
533
520
}
534
521
}
535
-
536
- // TODO we should not need this
537
- /** A manual copy listener */
538
- async function copyListener ( event : KeyboardEvent ) {
539
- event . preventDefault ( )
540
- if ( event . ctrlKey && event . key === "c" ) {
541
- const text = document . getSelection ( ) ?. toString ( ) ?? ""
542
- await navigator . clipboard . writeText ( text )
543
- }
544
- }
545
-
546
- function focusEditor ( editorComponent : TextEditorComponent ) {
547
- // @ts -ignore
548
- editorComponent ?. didFocus ( )
549
- }
550
-
551
- function blurEditor ( editorComponent : TextEditorComponent ) {
552
- // @ts -ignore
553
- editorComponent ?. didBlurHiddenInput ( {
554
- relatedTarget : null ,
555
- } )
556
- }
0 commit comments