@@ -14,6 +14,7 @@ define(function (require, exports) {
1414 Preferences = require ( "./Preferences" ) ,
1515 Utils = require ( "src/Utils" ) ;
1616
17+
1718 var cm = null ,
1819 results = null ,
1920 gutterName = "brackets-git-gutter" ,
@@ -74,7 +75,10 @@ define(function (require, exports) {
7475
7576 cm . clearGutter ( gutterName ) ;
7677 results . forEach ( function ( obj ) {
77- cm . setGutterMarker ( obj . line , gutterName , $ ( "<div class='" + gutterName + "-" + obj . type + "'> </div>" ) [ 0 ] ) ;
78+ var $marker = $ ( "<div>" )
79+ . addClass ( gutterName + "-" + obj . type + " gitline-" + ( obj . line + 1 ) )
80+ . html ( " " ) ;
81+ cm . setGutterMarker ( obj . line , gutterName , $marker [ 0 ] ) ;
7882 } ) ;
7983
8084 // reopen widgets that were opened before refresh
@@ -243,6 +247,39 @@ define(function (require, exports) {
243247 }
244248 }
245249
250+
251+ var _timer ;
252+ var $line = $ ( ) ,
253+ $gitGutterLines = $ ( ) ;
254+
255+ $ ( document )
256+ . on ( "mouseenter" , ".CodeMirror-linenumber" , function ( evt ) {
257+ var $target = $ ( evt . target ) ;
258+
259+ // Remove tooltip
260+ $line . attr ( "title" , "" ) ;
261+
262+ // Remove any misc gutter hover classes
263+ $ ( ".brackets-git-gutter-hover" ) . removeClass ( "brackets-git-gutter-hover" ) ;
264+
265+ // Add new gutter hover classes
266+ $gitGutterLines = $ ( ".gitline-" + $target . html ( ) ) . addClass ( "brackets-git-gutter-hover" ) ;
267+
268+ // Add tooltips if there are any git gutter marks
269+ if ( $gitGutterLines . length ) {
270+ $line = $target . attr ( "title" , "Click for more details" ) ;
271+ }
272+ } )
273+ . on ( "mouseleave" , ".CodeMirror-linenumber" , function ( evt ) {
274+ if ( _timer ) {
275+ clearTimeout ( _timer ) ;
276+ }
277+
278+ _timer = setTimeout ( function ( ) {
279+ $ ( ".gitline-" + $ ( evt . target ) . html ( ) ) . removeClass ( "brackets-git-gutter-hover" ) ;
280+ } , 500 ) ;
281+ } ) ;
282+
246283 // API
247284 exports . refresh = refresh ;
248285 exports . goToPrev = goToPrev ;
0 commit comments