diff options
author | Markus Keller | 2015-09-03 19:26:53 +0000 |
---|---|---|
committer | Markus Keller | 2015-09-03 19:26:53 +0000 |
commit | 24f2d349df52c2b9d8c0e778757335f0287fb84c (patch) | |
tree | 435066a37e424ea54ccab06963db185cf4383d4e | |
parent | 95d13081e0809f76f0cf43102c2fca0a2cf66fa9 (diff) | |
download | eclipse.platform.text-24f2d349df52c2b9d8c0e778757335f0287fb84c.tar.gz eclipse.platform.text-24f2d349df52c2b9d8c0e778757335f0287fb84c.tar.xz eclipse.platform.text-24f2d349df52c2b9d8c0e778757335f0287fb84c.zip |
Bug 468856: [rulers] Can't scroll with mouse wheel when mouse over line number ruler
3 files changed, 46 insertions, 4 deletions
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/AnnotationRulerColumn.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/AnnotationRulerColumn.java index 027b46205af..2bd1cc3f5d2 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/AnnotationRulerColumn.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/AnnotationRulerColumn.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2015 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -28,6 +28,7 @@ import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.MouseMoveListener; +import org.eclipse.swt.events.MouseWheelListener; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Cursor; @@ -337,6 +338,12 @@ public class AnnotationRulerColumn implements IVerticalRulerColumn, IVerticalRul handleMouseMove(e); } }); + + fCanvas.addMouseWheelListener(new MouseWheelListener() { + public void mouseScrolled(MouseEvent e) { + handleMouseScrolled(e); + } + }); if (fCachedTextViewer != null) { fCachedTextViewer.addViewportListener(fInternalListener); @@ -423,6 +430,17 @@ public class AnnotationRulerColumn implements IVerticalRulerColumn, IVerticalRul } /** + * Handles mouse scrolls. + * + * @param event the mouse scrolled event + */ + private void handleMouseScrolled(MouseEvent event) { + if (fCachedTextViewer != null) { + fCachedTextViewer.setTopIndex(fCachedTextViewer.getTopIndex() - event.count); + } + } + + /** * Tells whether the given line contains an annotation. * * @param lineNumber the line number diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/LineNumberRulerColumn.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/LineNumberRulerColumn.java index cbcd61663c2..f7cfa00c169 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/LineNumberRulerColumn.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/LineNumberRulerColumn.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2015 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -21,6 +21,7 @@ import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.MouseMoveListener; +import org.eclipse.swt.events.MouseWheelListener; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Color; @@ -99,7 +100,7 @@ public class LineNumberRulerColumn implements IVerticalRulerColumn { /** * Handles all the mouse interaction in this line number ruler column. */ - class MouseHandler implements MouseListener, MouseMoveListener { + class MouseHandler implements MouseListener, MouseMoveListener, MouseWheelListener { /** The cached view port size. */ private int fCachedViewportSize; @@ -361,6 +362,10 @@ public class LineNumberRulerColumn implements IVerticalRulerColumn { } return -1; } + + public void mouseScrolled(MouseEvent e) { + fCachedTextViewer.setTopIndex(fCachedTextViewer.getTopIndex() - e.count); + } } /** This column's parent ruler */ @@ -620,6 +625,7 @@ public class LineNumberRulerColumn implements IVerticalRulerColumn { fMouseHandler= new MouseHandler(); fCanvas.addMouseListener(fMouseHandler); fCanvas.addMouseMoveListener(fMouseHandler); + fCanvas.addMouseWheelListener(fMouseHandler); if (fCachedTextViewer != null) { diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/OverviewRuler.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/OverviewRuler.java index bfaeb3dbe26..ac8576a2b89 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/OverviewRuler.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/OverviewRuler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2012 IBM Corporation and others. + * Copyright (c) 2000, 2015 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -26,6 +26,7 @@ import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseMoveListener; import org.eclipse.swt.events.MouseTrackAdapter; +import org.eclipse.swt.events.MouseWheelListener; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Color; @@ -606,6 +607,12 @@ public class OverviewRuler implements IOverviewRulerExtension, IOverviewRuler { } }); + fCanvas.addMouseWheelListener(new MouseWheelListener() { + public void mouseScrolled(MouseEvent e) { + handleMouseScrolled(e); + } + }); + if (fTextViewer != null) fTextViewer.addTextListener(fInternalListener); @@ -1120,6 +1127,17 @@ public class OverviewRuler implements IOverviewRulerExtension, IOverviewRuler { } } + /** + * Handles mouse scrolls. + * + * @param event the mouse scrolled event + */ + private void handleMouseScrolled(MouseEvent event) { + if (fTextViewer != null) { + fTextViewer.setTopIndex(fTextViewer.getTopIndex() - event.count); + } + } + /* * @see org.eclipse.jface.text.source.IOverviewRuler#addAnnotationType(java.lang.Object) */ |