401 return val;
402 }
403 }
404
405 static native String getEnv(String key);
406
407
408 static String getAWTAppClassName() {
409 return awtAppClassName;
410 }
411
412 public XToolkit() {
413 super();
414 if (PerformanceLogger.loggingEnabled()) {
415 PerformanceLogger.setTime("XToolkit construction");
416 }
417
418 if (!GraphicsEnvironment.isHeadless()) {
419 String mainClassName = null;
420
421 StackTraceElement trace[] = (new Throwable()).getStackTrace();
422 int bottom = trace.length - 1;
423 if (bottom >= 0) {
424 mainClassName = trace[bottom].getClassName();
425 }
426 if (mainClassName == null || mainClassName.equals("")) {
427 mainClassName = "AWT";
428 }
429 awtAppClassName = getCorrectXIDString(mainClassName);
430
431 init();
432 XWM.init();
433
434 toolkitThread = AccessController.doPrivileged((PrivilegedAction<Thread>) () -> {
435 String name = "AWT-XAWT";
436 Thread thread = new Thread(
437 ThreadGroupUtils.getRootThreadGroup(), this, name,
438 0, false);
439 thread.setContextClassLoader(null);
440 thread.setPriority(Thread.NORM_PRIORITY + 1);
441 thread.setDaemon(true);
1932 int mask = Native.getInt(XlibWrapper.larg7);
1933 return ((mask & iKeyMask) != 0);
1934 } finally {
1935 awtUnlock();
1936 }
1937 }
1938
1939 /* Assign meaning - alt, meta, etc. - to X modifiers mod1 ... mod5.
1940 * Only consider primary symbols on keycodes attached to modifiers.
1941 */
1942 static void setupModifierMap() {
1943 final int metaL = keysymToPrimaryKeycode(XKeySymConstants.XK_Meta_L);
1944 final int metaR = keysymToPrimaryKeycode(XKeySymConstants.XK_Meta_R);
1945 final int altL = keysymToPrimaryKeycode(XKeySymConstants.XK_Alt_L);
1946 final int altR = keysymToPrimaryKeycode(XKeySymConstants.XK_Alt_R);
1947 final int numLock = keysymToPrimaryKeycode(XKeySymConstants.XK_Num_Lock);
1948 final int modeSwitch = keysymToPrimaryKeycode(XKeySymConstants.XK_Mode_switch);
1949 final int shiftLock = keysymToPrimaryKeycode(XKeySymConstants.XK_Shift_Lock);
1950 final int capsLock = keysymToPrimaryKeycode(XKeySymConstants.XK_Caps_Lock);
1951
1952 final int modmask[] = { XConstants.ShiftMask, XConstants.LockMask, XConstants.ControlMask, XConstants.Mod1Mask,
1953 XConstants.Mod2Mask, XConstants.Mod3Mask, XConstants.Mod4Mask, XConstants.Mod5Mask };
1954
1955 log.fine("In setupModifierMap");
1956 awtLock();
1957 try {
1958 XModifierKeymap modmap = new XModifierKeymap(
1959 XlibWrapper.XGetModifierMapping(getDisplay()));
1960
1961 int nkeys = modmap.get_max_keypermod();
1962
1963 long map_ptr = modmap.get_modifiermap();
1964
1965 for (int modn = XConstants.Mod1MapIndex;
1966 modn <= XConstants.Mod5MapIndex;
1967 ++modn)
1968 {
1969 for (int i = 0; i < nkeys; ++i) {
1970 /* for each keycode attached to this modifier */
1971 int keycode = Native.getUByte(map_ptr, modn * nkeys + i);
1972
|
401 return val;
402 }
403 }
404
405 static native String getEnv(String key);
406
407
408 static String getAWTAppClassName() {
409 return awtAppClassName;
410 }
411
412 public XToolkit() {
413 super();
414 if (PerformanceLogger.loggingEnabled()) {
415 PerformanceLogger.setTime("XToolkit construction");
416 }
417
418 if (!GraphicsEnvironment.isHeadless()) {
419 String mainClassName = null;
420
421 StackTraceElement[] trace = (new Throwable()).getStackTrace();
422 int bottom = trace.length - 1;
423 if (bottom >= 0) {
424 mainClassName = trace[bottom].getClassName();
425 }
426 if (mainClassName == null || mainClassName.equals("")) {
427 mainClassName = "AWT";
428 }
429 awtAppClassName = getCorrectXIDString(mainClassName);
430
431 init();
432 XWM.init();
433
434 toolkitThread = AccessController.doPrivileged((PrivilegedAction<Thread>) () -> {
435 String name = "AWT-XAWT";
436 Thread thread = new Thread(
437 ThreadGroupUtils.getRootThreadGroup(), this, name,
438 0, false);
439 thread.setContextClassLoader(null);
440 thread.setPriority(Thread.NORM_PRIORITY + 1);
441 thread.setDaemon(true);
1932 int mask = Native.getInt(XlibWrapper.larg7);
1933 return ((mask & iKeyMask) != 0);
1934 } finally {
1935 awtUnlock();
1936 }
1937 }
1938
1939 /* Assign meaning - alt, meta, etc. - to X modifiers mod1 ... mod5.
1940 * Only consider primary symbols on keycodes attached to modifiers.
1941 */
1942 static void setupModifierMap() {
1943 final int metaL = keysymToPrimaryKeycode(XKeySymConstants.XK_Meta_L);
1944 final int metaR = keysymToPrimaryKeycode(XKeySymConstants.XK_Meta_R);
1945 final int altL = keysymToPrimaryKeycode(XKeySymConstants.XK_Alt_L);
1946 final int altR = keysymToPrimaryKeycode(XKeySymConstants.XK_Alt_R);
1947 final int numLock = keysymToPrimaryKeycode(XKeySymConstants.XK_Num_Lock);
1948 final int modeSwitch = keysymToPrimaryKeycode(XKeySymConstants.XK_Mode_switch);
1949 final int shiftLock = keysymToPrimaryKeycode(XKeySymConstants.XK_Shift_Lock);
1950 final int capsLock = keysymToPrimaryKeycode(XKeySymConstants.XK_Caps_Lock);
1951
1952 final int[] modmask = { XConstants.ShiftMask, XConstants.LockMask, XConstants.ControlMask, XConstants.Mod1Mask,
1953 XConstants.Mod2Mask, XConstants.Mod3Mask, XConstants.Mod4Mask, XConstants.Mod5Mask };
1954
1955 log.fine("In setupModifierMap");
1956 awtLock();
1957 try {
1958 XModifierKeymap modmap = new XModifierKeymap(
1959 XlibWrapper.XGetModifierMapping(getDisplay()));
1960
1961 int nkeys = modmap.get_max_keypermod();
1962
1963 long map_ptr = modmap.get_modifiermap();
1964
1965 for (int modn = XConstants.Mod1MapIndex;
1966 modn <= XConstants.Mod5MapIndex;
1967 ++modn)
1968 {
1969 for (int i = 0; i < nkeys; ++i) {
1970 /* for each keycode attached to this modifier */
1971 int keycode = Native.getUByte(map_ptr, modn * nkeys + i);
1972
|