@@ -670,9 +670,20 @@ define(function (require, exports, module) {
670670 // install scroller shadows
671671 ViewUtils . addScrollerShadow ( _projectTree . get ( 0 ) ) ;
672672
673- _projectTree
674- . off ( "click.jstree" , "li > ins" )
675- . on ( "click.jstree" , "li > ins" , function ( event ) {
673+ var findEventHandler = function ( type , namespace , selector ) {
674+ var events = $ . _data ( _projectTree [ 0 ] , "events" ) ,
675+ eventsForType = events ? events [ type ] : null ,
676+ event = eventsForType ? _ . find ( eventsForType , function ( e ) {
677+ return e . namespace === namespace && e . selector === selector ;
678+ } ) : null ,
679+ eventHandler = event ? event . handler : null ;
680+ if ( ! eventHandler ) {
681+ console . error ( type + "." + namespace + " " + selector + " handler not found!" ) ;
682+ }
683+ return eventHandler ;
684+ } ;
685+ var createCustomHandler = function ( originalHandler ) {
686+ return function ( event ) {
676687 var $node = $ ( event . target ) . parent ( "li" ) ;
677688 if ( event . ctrlKey || event . metaKey ) {
678689 if ( event . altKey ) {
@@ -692,8 +703,17 @@ define(function (require, exports, module) {
692703 }
693704 }
694705 // original behaviour
695- _projectTree . jstree ( "toggle_node" , $node ) ;
696- } )
706+ originalHandler . apply ( this , arguments ) ;
707+ } ;
708+ } ;
709+ var originalHrefHandler = findEventHandler ( "click" , "jstree" , "a" ) ;
710+ var originalInsHandler = findEventHandler ( "click" , "jstree" , "li > ins" ) ;
711+
712+ _projectTree
713+ . off ( "click.jstree" , "a" )
714+ . on ( "click.jstree" , "a" , createCustomHandler ( originalHrefHandler ) )
715+ . off ( "click.jstree" , "li > ins" )
716+ . on ( "click.jstree" , "li > ins" , createCustomHandler ( originalInsHandler ) )
697717 . unbind ( "dblclick.jstree" )
698718 . bind ( "dblclick.jstree" , function ( event ) {
699719 var entry = $ ( event . target ) . closest ( "li" ) . data ( "entry" ) ;
0 commit comments