Пример #1
0
  public void dispatchEvent(XEvent xev) {
    if (eventLog.isLoggable(Level.FINEST)) eventLog.finest(xev.toString());
    int type = xev.get_type();

    if (isDisposed()) {
      return;
    }

    switch (type) {
      case VisibilityNotify:
        handleVisibilityEvent(xev);
        break;
      case ClientMessage:
        handleClientMessage(xev);
        break;
      case Expose:
      case GraphicsExpose:
        handleExposeEvent(xev);
        break;
      case ButtonPress:
      case ButtonRelease:
        handleButtonPressRelease(xev);
        break;

      case MotionNotify:
        handleMotionNotify(xev);
        break;
      case KeyPress:
        handleKeyPress(xev);
        break;
      case KeyRelease:
        handleKeyRelease(xev);
        break;
      case EnterNotify:
      case LeaveNotify:
        handleXCrossingEvent(xev);
        break;
      case ConfigureNotify:
        handleConfigureNotifyEvent(xev);
        break;
      case MapNotify:
        handleMapNotifyEvent(xev);
        break;
      case UnmapNotify:
        handleUnmapNotifyEvent(xev);
        break;
      case ReparentNotify:
        handleReparentNotifyEvent(xev);
        break;
      case PropertyNotify:
        handlePropertyNotify(xev);
        break;
      case DestroyNotify:
        handleDestroyNotify(xev);
        break;
      case CreateNotify:
        handleCreateNotify(xev);
        break;
    }
  }
Пример #2
0
 static boolean isGrabbedEvent(XEvent ev, XBaseWindow target) {
   switch (ev.get_type()) {
     case ButtonPress:
     case ButtonRelease:
     case MotionNotify:
     case KeyPress:
     case KeyRelease:
       return true;
     case LeaveNotify:
     case EnterNotify:
       // We shouldn't dispatch this events to the grabbed components (see 6317481)
       // But this logic is important if the grabbed component is top-level (see realSync)
       return (target instanceof XWindowPeer);
     default:
       return false;
   }
 }
Пример #3
0
 /** Activate automatic grab on first ButtonPress, deactivate on full mouse release */
 public void handleButtonPressRelease(XEvent xev) {
   XButtonEvent xbe = xev.get_xbutton();
   final int buttonState =
       xbe.get_state() & (Button1Mask | Button2Mask | Button3Mask | Button4Mask | Button5Mask);
   switch (xev.get_type()) {
     case ButtonPress:
       if (buttonState == 0) {
         XAwtState.setAutoGrabWindow(this);
       }
       break;
     case ButtonRelease:
       if (isFullRelease(buttonState, xbe.get_button())) {
         XAwtState.setAutoGrabWindow(null);
       }
       break;
   }
 }