Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Loskutov2019-03-02 23:07:19 +0000
committerAndrey Loskutov2019-03-02 23:07:19 +0000
commit8a10c51f5ccf762ed179f8295036f4541dc434be (patch)
treed4396b0a291bf243c710200e5463c000a598fd39
parent9556dbecc9e4f06d10116d894956ec668b05b12b (diff)
downloadeclipse.platform.text-8a10c51f5ccf762ed179f8295036f4541dc434be.tar.gz
eclipse.platform.text-8a10c51f5ccf762ed179f8295036f4541dc434be.tar.xz
eclipse.platform.text-8a10c51f5ccf762ed179f8295036f4541dc434be.zip
Bug 541415 - fixed testsI20190303-0600
Change-Id: I3d5a21c60e5f83ddcb061a781a1f2b558d3f11b3 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
-rw-r--r--org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java37
-rw-r--r--org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/util/DisplayHelper.java2
2 files changed, 24 insertions, 15 deletions
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java
index 7f9710eb779..2138f499439 100644
--- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java
@@ -25,7 +25,10 @@ import org.junit.Test;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.text.Document;
@@ -117,23 +120,29 @@ public class TextViewerTest {
}
public static void ctrlEnd(ITextViewer viewer) {
- Event ctrlEndEvent = new Event();
- ctrlEndEvent.widget = viewer.getTextWidget();
- ctrlEndEvent.keyCode = SWT.END;
- ctrlEndEvent.stateMask = SWT.MOD1;
- ctrlEndEvent.type = SWT.KeyDown;
- ctrlEndEvent.doit = true;
- viewer.getTextWidget().getDisplay().post(ctrlEndEvent);
+ postKeyEvent(viewer.getTextWidget(), SWT.END, SWT.CTRL, SWT.KeyDown);
}
public static void ctrlHome(ITextViewer viewer) {
- Event ctrlHomeEvent = new Event();
- ctrlHomeEvent.widget = viewer.getTextWidget();
- ctrlHomeEvent.keyCode = SWT.HOME;
- ctrlHomeEvent.stateMask = SWT.MOD1;
- ctrlHomeEvent.type = SWT.KeyDown;
- ctrlHomeEvent.doit = true;
- viewer.getTextWidget().getDisplay().post(ctrlHomeEvent);
+ postKeyEvent(viewer.getTextWidget(), SWT.HOME, SWT.CTRL, SWT.KeyDown);
+ }
+
+ private static void postKeyEvent(Control widget, int keyCode, int stateMask, int type) {
+ Display display= widget.getDisplay();
+ widget.setFocus();
+ DisplayHelper.driveEventQueue(display);
+ Event event = new Event();
+ event.widget = widget;
+ event.keyCode = keyCode;
+ event.stateMask = stateMask;
+ event.type = type;
+ event.doit = true;
+ // display.post(event) seem not always work, see bug 541415
+ Listener[] listeners= widget.getListeners(type);
+ for (Listener listener : listeners) {
+ listener.handleEvent(event);
+ }
+ DisplayHelper.driveEventQueue(display);
}
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/util/DisplayHelper.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/util/DisplayHelper.java
index 221e77fe96e..695f56c107e 100644
--- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/util/DisplayHelper.java
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/util/DisplayHelper.java
@@ -121,7 +121,7 @@ public abstract class DisplayHelper {
* @return if <code>display.readAndDispatch</code> returned
* <code>true</code> at least once
*/
- private static boolean driveEventQueue(Display display) {
+ public static boolean driveEventQueue(Display display) {
boolean events= false;
while (display.readAndDispatch()) {
events= true;

Back to the top