< prev index next >
src/java.desktop/unix/classes/sun/awt/X11/XRobotPeer.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -23,11 +23,11 @@
* questions.
*/
package sun.awt.X11;
import java.awt.*;
-import java.awt.peer.*;
+import java.awt.peer.RobotPeer;
import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.awt.AWTAccessor;
import sun.awt.SunToolkit;
@@ -35,43 +35,38 @@
import sun.awt.X11GraphicsConfig;
import sun.awt.X11GraphicsEnvironment;
class XRobotPeer implements RobotPeer {
- static final boolean tryGtk;
static {
loadNativeLibraries();
- tryGtk = AccessController.doPrivileged((PrivilegedAction<Boolean>)()
- -> Boolean.getBoolean("awt.robot.gtk"));
}
- private static boolean isGtkSupported = false;
- private static volatile boolean useGtk;
- private X11GraphicsConfig xgc = null;
+ private final boolean useGtk;
+ private final X11GraphicsConfig xgc;
/*
* native implementation uses some static shared data (pipes, processes)
* so use a class lock to synchronize native method calls
*/
- static Object robotLock = new Object();
+ static final Object robotLock = new Object();
XRobotPeer(GraphicsConfiguration gc) {
- this.xgc = (X11GraphicsConfig)gc;
+ xgc = (X11GraphicsConfig)gc;
SunToolkit tk = (SunToolkit)Toolkit.getDefaultToolkit();
setup(tk.getNumberOfButtons(),
AWTAccessor.getInputEventAccessor().getButtonDownMasks());
- boolean isGtkSupported = false;
- if (tryGtk) {
- if (tk instanceof UNIXToolkit && ((UNIXToolkit) tk).loadGTK()) {
- isGtkSupported = true;
+ if (!(tk instanceof UNIXToolkit) || "false".equals(AccessController.
+ doPrivileged((PrivilegedAction<String>)() ->
+ System.getProperty("awt.robot.gtk")))) {
+ useGtk = false;
+ } else {
+ useGtk = ((UNIXToolkit) tk).loadGTK();
}
}
- useGtk = (tryGtk && isGtkSupported);
- }
-
@Override
public void dispose() {
// does nothing
}
< prev index next >