diff options
author | Sam Davis | 2014-02-18 19:43:26 +0000 |
---|---|---|
committer | Sam Davis | 2014-02-18 19:44:58 +0000 |
commit | 2e728e5d380a13ab769830d588ebff70a60f19b9 (patch) | |
tree | 5eadd395f4daf37d5335a8839cf80a6ffd9a87a3 | |
parent | 054c23fa680f684ed215450395bc04b42a31f624 (diff) | |
download | org.eclipse.mylyn.tasks-2e728e5d380a13ab769830d588ebff70a60f19b9.tar.gz org.eclipse.mylyn.tasks-2e728e5d380a13ab769830d588ebff70a60f19b9.tar.xz org.eclipse.mylyn.tasks-2e728e5d380a13ab769830d588ebff70a60f19b9.zip |
425926: ensure addScrollListener does not require a scroll bar
Impossible to scroll after patchset lost focus
Change-Id: I9f4315794444dafacc29d75a2dbcb18c17a553f6
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=425926
2 files changed, 39 insertions, 19 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java index bcb34975a..a487fa883 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/EditorUtilTest.java @@ -14,9 +14,12 @@ package org.eclipse.mylyn.tasks.tests.ui.editor; import junit.framework.TestCase; import org.eclipse.mylyn.commons.ui.CommonUiUtil; +import org.eclipse.mylyn.commons.workbench.WorkbenchUtil; +import org.eclipse.mylyn.internal.tasks.ui.editors.EditorUtil; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Scrollable; import org.eclipse.swt.widgets.Shell; /** @@ -113,4 +116,23 @@ public class EditorUtilTest extends TestCase { assertFalse(composite.getEnabled()); } + public void testAddScrollListener() { + Scrollable textWidget = new Composite(WorkbenchUtil.getShell(), SWT.V_SCROLL); + + assertNotNull(textWidget.getVerticalBar()); + assertEquals(0, textWidget.getListeners(SWT.MouseVerticalWheel).length); + + EditorUtil.addScrollListener(textWidget); + assertEquals(1, textWidget.getListeners(SWT.MouseVerticalWheel).length); + + // test when there is no vertical bar + textWidget = new Composite(WorkbenchUtil.getShell(), SWT.NONE); + assertNull(textWidget.getVerticalBar()); + + assertEquals(0, textWidget.getListeners(SWT.MouseVerticalWheel).length); + + EditorUtil.addScrollListener(textWidget); + assertEquals(1, textWidget.getListeners(SWT.MouseVerticalWheel).length); + } + } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java index 958668dd5..da0a22f6d 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/EditorUtil.java @@ -546,28 +546,26 @@ public class EditorUtil { } public static void addScrollListener(final Scrollable textWidget) { - if (textWidget.getVerticalBar() != null) { - textWidget.addMouseWheelListener(new MouseWheelListener() { - public void mouseScrolled(MouseEvent event) { - ScrolledComposite form = FormUtil.getScrolledComposite(textWidget); - if (form != null) { - ScrollBar verticalBar = textWidget.getVerticalBar(); - if (event.count < 0) { - // scroll form down - if (verticalBar == null - || verticalBar.getSelection() + verticalBar.getThumb() == verticalBar.getMaximum()) { - EditorUtil.scroll(form, 0, form.getVerticalBar().getIncrement()); - } - } else { - // scroll form up - if (verticalBar == null || verticalBar.getSelection() == verticalBar.getMinimum()) { - EditorUtil.scroll(form, 0, -form.getVerticalBar().getIncrement()); - } + textWidget.addMouseWheelListener(new MouseWheelListener() { + public void mouseScrolled(MouseEvent event) { + ScrolledComposite form = FormUtil.getScrolledComposite(textWidget); + if (form != null) { + ScrollBar verticalBar = textWidget.getVerticalBar(); + if (event.count < 0) { + // scroll form down + if (verticalBar == null + || verticalBar.getSelection() + verticalBar.getThumb() == verticalBar.getMaximum()) { + EditorUtil.scroll(form, 0, form.getVerticalBar().getIncrement()); + } + } else { + // scroll form up + if (verticalBar == null || verticalBar.getSelection() == verticalBar.getMinimum()) { + EditorUtil.scroll(form, 0, -form.getVerticalBar().getIncrement()); } } } - }); - } + } + }); } public static void addScrollListener(final CCombo combo) { |