Exemple #1
0
 public static boolean XineramaIsEnabled(long displayHandle) {
   if (0 == displayHandle) {
     throw new IllegalArgumentException("X11 Display handle is NULL");
   }
   final String displayName = X11Lib.XDisplayString(displayHandle);
   synchronized (displayXineramaEnabledMap) {
     final Boolean b = displayXineramaEnabledMap.get(displayName);
     if (null != b) {
       return b.booleanValue();
     }
   }
   final boolean res;
   if (!XineramaFetched) { // volatile: ok
     synchronized (X11Util.class) {
       if (!XineramaFetched) {
         XineramaLibHandle = X11Lib.XineramaGetLibHandle();
         if (0 != XineramaLibHandle) {
           XineramaQueryFunc = X11Lib.XineramaGetQueryFunc(XineramaLibHandle);
         }
         XineramaFetched = true;
       }
     }
   }
   if (0 != XineramaQueryFunc) {
     res = X11Lib.XineramaIsEnabled(XineramaQueryFunc, displayHandle);
   } else {
     if (DEBUG) {
       System.err.println(
           "XineramaIsEnabled: Couldn't bind to Xinerama - lib 0x"
               + Long.toHexString(XineramaLibHandle)
               + "query 0x"
               + Long.toHexString(XineramaQueryFunc));
     }
     res = false;
   }
   synchronized (displayXineramaEnabledMap) {
     if (DEBUG) {
       System.err.println(
           "XineramaIsEnabled Cache: Display "
               + displayName
               + " (0x"
               + Long.toHexString(displayHandle)
               + ") -> "
               + res);
     }
     displayXineramaEnabledMap.put(displayName, Boolean.valueOf(res));
   }
   return res;
 }