@@ -2,6 +2,10 @@ import {
22 forEach
33} from 'min-dash' ;
44
5+ import {
6+ getType
7+ } from 'lib/util/Elements' ;
8+
59var MARKER_HOVER = 'hover' ,
610 MARKER_SELECTED = 'selected' ;
711
@@ -22,12 +26,29 @@ export default function SelectionVisuals(events, canvas, selection, styles) {
2226
2327 this . _multiSelectionBox = null ;
2428
29+ function applyToRelatedElements ( e , cls , fn ) {
30+
31+ // connections -> mark related labels
32+ if ( getType ( e ) === 'connection' ) {
33+ forEach ( e . labels , function ( label ) {
34+ fn ( label , cls ) ;
35+ } ) ;
36+ }
37+
38+ // label -> mark related connection
39+ if ( e . labelTarget ) {
40+ fn ( e . labelTarget , cls ) ;
41+ }
42+ }
43+
2544 function addMarker ( e , cls ) {
2645 canvas . addMarker ( e , cls ) ;
46+ applyToRelatedElements ( e , cls , canvas . addMarker . bind ( canvas ) ) ;
2747 }
2848
2949 function removeMarker ( e , cls ) {
3050 canvas . removeMarker ( e , cls ) ;
51+ applyToRelatedElements ( e , cls , canvas . removeMarker . bind ( canvas ) ) ;
3152 }
3253
3354 events . on ( 'element.hover' , function ( event ) {
0 commit comments