public void mousePressed(MouseEvent e) {
    boolean shifted =  (e.getModifiers() & InputEvent.SHIFT_MASK) != 0;
    boolean ctrl = (e.getModifiers() & InputEvent.CTRL_MASK) != 0;
    boolean alt = (e.getModifiers() & InputEvent.ALT_MASK) != 0;

//System.out.println("mousePress, mod="+e.getModifiers()+", shifted="+shifted);
    Point pt = e.getPoint();
    if (tools.button1(e)) {
        if (action == CA_NONE) {
          if (shifted && ctrl && alt) {
            reset();
            view.repaint();
          } else
          if (shifted) {
            display();
          } else

          if (ctrl) {
            action = CA_MOVEPLANAR;
            mouseStart = pt;
            startFocus = new FPoint3(focalPoint);
          } else {
            action = CA_MOVE;
            mouseStart = pt;
            startPlanarAngle = planarAngle;
            startInclineAngle = inclineAngle;
          }
        }
    }
        else {

        if (action == CA_NONE) {
          if (ctrl) {
            action = CA_MOVEVERT;
            mouseStart = pt;
            startFocus = new FPoint3(focalPoint);
          } else {
            action = CA_ZOOM;
            mouseStart = pt;
            startZoom = zoom;
            zoomSpeed = zoom / 100;
          }
        }
        }
  }