< prev index next >

src/java.desktop/unix/classes/sun/awt/X11/XMSelection.java

Print this page




  80     static {
  81         long display = XToolkit.getDisplay();
  82         XToolkit.awtLock();
  83         try {
  84             numScreens = XlibWrapper.ScreenCount(display);
  85         } finally {
  86             XToolkit.awtUnlock();
  87         }
  88         XA_MANAGER = XAtom.get("MANAGER");
  89         for (int screen = 0; screen < numScreens ; screen ++) {
  90             initScreen(display,screen);
  91         }
  92 
  93         selectionMap = new HashMap<>();
  94     }
  95 
  96     static void initScreen(long display, final int screen) {
  97         XToolkit.awtLock();
  98         try {
  99             long root = XlibWrapper.RootWindow(display,screen);
 100             XlibWrapper.XSelectInput(display, root, XConstants.StructureNotifyMask);








 101             XToolkit.addEventDispatcher(root,
 102                     new XEventDispatcher() {
 103                         public void dispatchEvent(XEvent ev) {
 104                                 processRootEvent(ev, screen);
 105                             }
 106                         });
 107 
 108         } finally {
 109             XToolkit.awtUnlock();
 110         }
 111     }
 112 
 113 
 114     public int getNumberOfScreens() {
 115         return numScreens;
 116     }
 117 
 118     void select(long extra_mask) {
 119         eventMask = extra_mask;
 120         for (int screen = 0; screen < numScreens ; screen ++) {




  80     static {
  81         long display = XToolkit.getDisplay();
  82         XToolkit.awtLock();
  83         try {
  84             numScreens = XlibWrapper.ScreenCount(display);
  85         } finally {
  86             XToolkit.awtUnlock();
  87         }
  88         XA_MANAGER = XAtom.get("MANAGER");
  89         for (int screen = 0; screen < numScreens ; screen ++) {
  90             initScreen(display,screen);
  91         }
  92 
  93         selectionMap = new HashMap<>();
  94     }
  95 
  96     static void initScreen(long display, final int screen) {
  97         XToolkit.awtLock();
  98         try {
  99             long root = XlibWrapper.RootWindow(display,screen);
 100             XWindowAttributes wattr = new XWindowAttributes();
 101             try {
 102                 XlibWrapper.XGetWindowAttributes(display, root, wattr.pData);
 103                 XlibWrapper.XSelectInput(display, root,
 104                         XConstants.StructureNotifyMask |
 105                         wattr.get_your_event_mask());
 106             } finally {
 107                 wattr.dispose();
 108             }
 109             XToolkit.addEventDispatcher(root,
 110                     new XEventDispatcher() {
 111                         public void dispatchEvent(XEvent ev) {
 112                                 processRootEvent(ev, screen);
 113                             }
 114                         });
 115 
 116         } finally {
 117             XToolkit.awtUnlock();
 118         }
 119     }
 120 
 121 
 122     public int getNumberOfScreens() {
 123         return numScreens;
 124     }
 125 
 126     void select(long extra_mask) {
 127         eventMask = extra_mask;
 128         for (int screen = 0; screen < numScreens ; screen ++) {


< prev index next >