@@ -100,6 +100,7 @@ public ErrorLineCoord(int xStart, int xEnd, int yStart, int yEnd, Problem proble
100100
101101 public JavaTextAreaPainter (JavaTextArea textArea , TextAreaDefaults defaults ) {
102102 super (textArea , defaults );
103+ new Exception ().printStackTrace (System .out );
103104
104105 addMouseListener (new MouseAdapter () {
105106 public void mouseClicked (MouseEvent evt ) {
@@ -113,18 +114,37 @@ public void mouseClicked(MouseEvent evt) {
113114 }
114115 });
115116
117+ // Handle mouse clicks to toggle breakpoints
118+ addMouseListener (new MouseAdapter () {
119+ long lastTime ; // OS X seems to be firing multiple mouse events
120+
121+ public void mousePressed (MouseEvent event ) {
122+ long thisTime = event .getWhen ();
123+ if (thisTime - lastTime > 100 ) {
124+ if (event .getX () < Editor .LEFT_GUTTER ) {
125+ int offset = getTextArea ().xyToOffset (event .getX (), event .getY ());
126+ if (offset >= 0 ) {
127+ int lineIndex = getTextArea ().getLineOfOffset (offset );
128+ getEditor ().toggleBreakpoint (lineIndex );
129+ }
130+ }
131+ lastTime = thisTime ;
132+ }
133+ }
134+ });
135+
116136 addMouseMotionListener (new MouseMotionAdapter () {
117137 @ Override
118138 public void mouseMoved (final MouseEvent evt ) {
119- for (ErrorLineCoord coord : errorLineCoords ) {
120- if (evt .getX () >= coord .xStart && evt .getX () <= coord .xEnd
121- && evt .getY () >= coord .yStart && evt .getY () <= coord .yEnd + 2 ) {
122- setToolTipText (coord .problem .getMessage ());
123- break ;
124- }
125- }
139+ for (ErrorLineCoord coord : errorLineCoords ) {
140+ if (evt .getX () >= coord .xStart && evt .getX () <= coord .xEnd &&
141+ evt .getY () >= coord .yStart && evt .getY () <= coord .yEnd + 2 ) {
142+ setToolTipText (coord .problem .getMessage ());
143+ break ;
144+ }
145+ }
126146 }
127- });
147+ });
128148
129149 // TweakMode code
130150 interactiveMode = false ;
0 commit comments