private boolean isOnUsbKbd;
private ScreenShotDialog screenShotDialog;
+ private Menu contextMenu;
private SocketCommunicator communicator;
private long windowHandleId;
private MouseTrackListener shellMouseTrackListener;
private MouseMoveListener shellMouseMoveListener;
private MouseListener shellMouseListener;
+ private MenuDetectListener shellMenuDetectListener;
//private DragDetectListener canvasDragDetectListener;
private MouseMoveListener canvasMouseMoveListener;
}
private void setMenu() {
+ contextMenu = new Menu(shell);
- Menu contextMenu = new Menu( shell );
+ addMenuItems(shell, contextMenu);
- addMenuItems( shell, contextMenu );
-
- addShellListener( shell );
- addCanvasListener( shell, lcdCanvas );
-
- shell.setMenu( contextMenu );
+ addShellListener(shell);
+ addCanvasListener(shell, lcdCanvas);
+ shell.setMenu(contextMenu);
}
// private void readyToReopen( EmulatorSkin sourceSkin, boolean isOnTop ) {
shell.addMouseListener( shellMouseListener );
+ shellMenuDetectListener = new MenuDetectListener() {
+ @Override
+ public void menuDetected(MenuDetectEvent e) {
+ if (EmulatorSkin.this.contextMenu != null && EmulatorSkin.this.isMousePressed == false) {
+ shell.setMenu(EmulatorSkin.this.contextMenu);
+ EmulatorSkin.this.contextMenu.setVisible(true);
+ e.doit = false;
+ } else {
+ shell.setMenu(null);
+ }
+ }
+ };
+
+ shell.addMenuDetectListener(shellMenuDetectListener);
}
private void removeShellListeners() {