Package com.peterhi.net6

Examples of com.peterhi.net6.Window


        @Override
        public void run() {
          try {
            final X11 x11 = X11.INSTANCE;
            final Display display = x11.XOpenDisplay(null);
            Window window = new Window(nativeHandle);
            x11.XSelectInput(display, window,
                new NativeLong(X11.ExposureMask |
                    X11.VisibilityChangeMask |
                    X11.StructureNotifyMask |
                    X11.FocusChangeMask |
View Full Code Here


        screenVisual = new HashMap<Integer,Visual>();
 
  defaultDepth = display.default_depth;

        atomsWmSelection = new Atom[display.screens.length];
        Window wmSelectionWin = new Window(rootWin, 0,0, 1, 1, 0, new Window.Attributes());

  for (int i = 0; i< display.screens.length; i++) {
      Screen screen = display.screens[i];
      gnu.x11.Enum scrdepths = screen.depths();
      while (scrdepths.more()) {
          Depth depth = (Depth) scrdepths.next();
          screenDepth.put(depth.depth(), depth);
   
    gnu.x11.Enum enm = depth.visuals();       
    while (enm.more()) {
        Visual visual = (Visual) enm.next();             
        screenVisual.put(visual.id(), visual);
    }
      }

      // AWT in Java6u1 requires that the WM acquire these selections.
      // Note: even though the WM conventions recommend that CurrentTime
      // not be used we can use it here because the LG WM is the only one
      // acquiring these selections.

      atomsWmSelection[i] = (Atom)Atom.intern(display, "WM_S" + i);
      wmSelectionWin.set_selection_owner(atomsWmSelection[i], Display.CURRENT_TIME);
      display.check_error();
  }

  atomWmState = (Atom)Atom.intern(display, "WM_STATE");
  atomWmChangeState = (Atom)Atom.intern(display, "WM_CHANGE_STATE");
  atomWmProtocols = (Atom)Atom.intern(display, "WM_PROTOCOLS");
  atomWmDeleteWindow = (Atom)Atom.intern(display, "WM_DELETE_WINDOW");
  atomWmTakeFocus = (Atom)Atom.intern(display, "WM_TAKE_FOCUS");
  atomWmColormapWindows=(Atom)Atom.intern(display,"WM_COLORMAP_WINDOWS");
  atomWmTransientFor = (Atom)Atom.intern(display, "WM_TRANSIENT_FOR");
  atomCompoundText = (Atom)Atom.intern(display, "COMPOUND_TEXT");
  atomServerShutdown = (Atom)Atom.intern(display, "SERVER_SHUTDOWN");

  try {
            selectInput(rootWin);
  } catch (Error err) {
      if (err.code == Error.BAD_ACCESS && err.bad == rootWin.id) {
                logger.severe("Failed to access root window. Another WM is running?");
    throw new RuntimeException ("Failed to access root window\n"
        + "Another WM is running?"); // FIXME
      } else {
    throw err;
      }
  }
       
        // Remote Windows: Automatically composite redirect all root top-level windows
  compositeTopLevelWindows();

  // Init WmNET support for screen 0
  // TODO: multiscreen
  Window[] rootWins = new Window[1];
  Window[] checkWins = new Window[1];
  rootWins[0] = rootWin;
        checkWins[0] = new Window(rootWin, 0,0, 1, 1, 0, new Window.Attributes());
  X11WindowManagerHints.initWmNETSupport(display, rootWins, checkWins);

  // prepare for the event dispatch thread
  Thread eventThread = new Thread( this, "X11WindowManager" );
  // eventThread.setPriority(Thread.NORM_PRIORITY + 2); // FIXME
View Full Code Here

TOP

Related Classes of com.peterhi.net6.Window

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.