Пример #1
0
  void preInit(XCreateWindowParams params) {
    super.preInit(params);
    if (!resize_request.isInterned()) {
      resize_request.intern(false);
    }
    winAttr.initialFocus = true;

    currentInsets = new Insets(0, 0, 0, 0); // replacemenet for wdata->top, left, bottom, right

    applyGuessedInsets();
    Rectangle bounds = (Rectangle) params.get(BOUNDS);
    dimensions = new WindowDimensions(bounds, getRealInsets(), false);
    params.put(BOUNDS, dimensions.getClientRect());

    if (insLog.isLoggable(Level.FINE)) {
      insLog.log(Level.FINE, "Initial dimensions {0}", new Object[] {String.valueOf(dimensions)});
    }

    // Deny default processing of these events on the shell - proxy will take care of
    // them instead
    Long eventMask = (Long) params.get(EVENT_MASK);
    params.add(
        EVENT_MASK,
        Long.valueOf(eventMask.longValue() & ~(FocusChangeMask | KeyPressMask | KeyReleaseMask)));
  }
Пример #2
0
 protected void initClientLeader() {
   XToolkit.awtLock();
   try {
     if (wm_client_leader == null) {
       wm_client_leader = XAtom.get("WM_CLIENT_LEADER");
     }
     wm_client_leader.setWindowProperty(this, getXAWTRootWindow());
   } finally {
     XToolkit.awtUnlock();
   }
 }
Пример #3
0
 void setWMClass(String[] cl) {
   if (cl.length != 2) {
     throw new IllegalArgumentException("WM_CLASS_NAME consists of exactly two strings");
   }
   XToolkit.awtLock();
   try {
     XAtom xa = XAtom.get(XAtom.XA_WM_CLASS);
     xa.setProperty8(getWindow(), cl[0] + '\0' + cl[1]);
   } finally {
     XToolkit.awtUnlock();
   }
 }
Пример #4
0
 private XAtom getTargetsPropertyAtom() {
   if (null == targetsPropertyAtom) {
     targetsPropertyAtom =
         XAtom.get("XAWT_TARGETS_OF_SELECTION:" + selection.getSelectionAtom().getName());
   }
   return targetsPropertyAtom;
 }
Пример #5
0
  /*
   * Tracks changes of available formats.
   * NOTE: This method may be called by privileged threads.
   *       DO NOT INVOKE CLIENT CODE ON THIS THREAD!
   */
  private void checkChange(XSelectionEvent xse) {
    final long propertyAtom = xse.get_property();
    if (propertyAtom != getTargetsPropertyAtom().getAtom()) {
      // wrong atom
      return;
    }

    final XAtom selectionAtom = XAtom.get(xse.get_selection());
    final XSelection changedSelection = XSelection.getSelection(selectionAtom);

    if (null == changedSelection || changedSelection != selection) {
      // unknown selection - do nothing
      return;
    }

    isSelectionNotifyProcessed = true;

    if (selection.isOwner()) {
      // selection is owner - do not need formats
      return;
    }

    long[] formats = null;

    if (propertyAtom == XConstants.None) {
      // We treat None property atom as "empty selection".
      formats = new long[0];
    } else {
      WindowPropertyGetter targetsGetter =
          new WindowPropertyGetter(
              XWindow.getXAWTRootWindow().getWindow(),
              XAtom.get(propertyAtom),
              0,
              XSelection.MAX_LENGTH,
              true,
              XConstants.AnyPropertyType);
      try {
        targetsGetter.execute();
        formats = XSelection.getFormats(targetsGetter);
      } finally {
        targetsGetter.dispose();
      }
    }

    checkChange(formats);
  }
Пример #6
0
 public void handlePropertyNotify(XEvent xev) {
   XPropertyEvent msg = xev.get_xproperty();
   if (XPropertyCache.isCachingSupported()) {
     XPropertyCache.clearCache(window, XAtom.get(msg.get_atom()));
   }
   if (eventLog.isLoggable(Level.FINER)) {
     eventLog.log(Level.FINER, "{0}", new Object[] {String.valueOf(msg)});
   }
 }
Пример #7
0
 public void handleClientMessage(XEvent xev) {
   super.handleClientMessage(xev);
   XClientMessageEvent cl = xev.get_xclient();
   if ((wm_protocols != null) && (cl.get_message_type() == wm_protocols.getAtom())) {
     if (cl.get_data(0) == wm_delete_window.getAtom()) {
       handleQuit();
     } else if (cl.get_data(0) == wm_take_focus.getAtom()) {
       handleWmTakeFocus(cl);
     }
   } else if (cl.get_message_type() == resize_request.getAtom()) {
     reshape(
         (int) cl.get_data(0), (int) cl.get_data(1),
         (int) cl.get_data(2), (int) cl.get_data(3),
         (int) cl.get_data(4), true);
   }
 }
Пример #8
0
 void updateWMName() {
   String name = getWMName();
   XToolkit.awtLock();
   try {
     if (name == null) {
       name = " ";
     }
     XAtom nameAtom = XAtom.get(XAtom.XA_WM_NAME);
     nameAtom.setProperty(getWindow(), name);
     XAtom netNameAtom = XAtom.get("_NET_WM_NAME");
     netNameAtom.setPropertyUTF8(getWindow(), name);
   } finally {
     XToolkit.awtUnlock();
   }
 }
Пример #9
0
 void updateWMName() {
   super.updateWMName();
   String name = getWMName();
   XToolkit.awtLock();
   try {
     if (name == null || name.trim().equals("")) {
       name = "Java";
     }
     XAtom iconNameAtom = XAtom.get(XAtom.XA_WM_ICON_NAME);
     iconNameAtom.setProperty(getWindow(), name);
     XAtom netIconNameAtom = XAtom.get("_NET_WM_ICON_NAME");
     netIconNameAtom.setPropertyUTF8(getWindow(), name);
   } finally {
     XToolkit.awtUnlock();
   }
 }
Пример #10
0
 /** Creates a system clipboard object. */
 public XClipboard(String name, String selectionName) {
   super(name);
   selection = new XSelection(XAtom.get(selectionName));
   selection.registerOwershipListener(this);
 }