缺少事件类型MouseUp

时间:2015-09-03 12:57:57

标签: eclipse-rap

在以下情形中,缺少MouseUp类型的事件。

重现的基础是这段代码(使用rap 3.0)

@Override
protected void createContents(Composite parent) {
    GridLayout gl = new GridLayout(1, false);
    parent.setLayout(gl);

    GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);

    Composite above = new Composite(parent, SWT.BORDER);
    above.setLayout(gl);
    above.setLayoutData(gd);
    Button buttonAbove = new Button(above, SWT.TOGGLE);
    buttonAbove.setText("above");

    Button button = new Button(parent, SWT.TOGGLE);
    button.setText("start");
    addListener(button);

    Composite bottom = new Composite(parent, SWT.BORDER);
    bottom.setLayout(gl);
    bottom.setLayoutData(gd);
    Button buttonBottom = new Button(bottom, SWT.TOGGLE);
    buttonBottom.setText("bottom");
}

private void addListener(Button button) {
    Listener listener = new Listener() {
        @Override
        public void handleEvent(Event event) {
            switch (event.type) {
                case SWT.MouseDown:
                    System.out.println("MouseDown");
                    break;
                case SWT.MouseUp:
                    System.out.println("MouseUp");
                    break;
            }
        }
    };
    button.addListener(SWT.MouseDown, listener);
    button.addListener(SWT.MouseUp, listener);
}
  1. 将光标移到按钮start
  2. 按下鼠标按钮并保持按下
  3. 将光标向右拖动,按钮bottom或复合buttom,然后释放MouseButton - >类型为SWT.MouseUp的事件被触发
  4. 再次将光标移到按钮start
  5. 按下鼠标按钮并保持按下
  6. 将光标拖到按钮above上或合成above上方,然后释放鼠标按钮 - >事件未被解雇
  7. 我在执行Button的拖放时以更复杂的方式发现了这个问题,这似乎是问题的根源。

    在SWT应用程序中,始终抛出MouseUp事件。

    这是RAP中的错误吗?

0 个答案:

没有答案