jdk/src/solaris/classes/sun/awt/X11/XDesktopPeer.java
changeset 23243 43e5bc27297f
parent 9035 1255eb81cc2f
child 23328 4c53a6ebc779
--- a/jdk/src/solaris/classes/sun/awt/X11/XDesktopPeer.java	Wed Dec 18 10:41:11 2013 +0000
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDesktopPeer.java	Wed Dec 18 11:01:33 2013 +0000
@@ -33,6 +33,9 @@
 
 import java.awt.Desktop.Action;
 import java.awt.peer.DesktopPeer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 
 /**
@@ -43,6 +46,10 @@
  */
 public class XDesktopPeer implements DesktopPeer {
 
+    // supportedActions may be changed from native within an init() call
+    private static final List<Action> supportedActions
+            = new ArrayList<>(Arrays.asList(Action.OPEN, Action.MAIL, Action.BROWSE));
+
     private static boolean nativeLibraryLoaded = false;
     private static boolean initExecuted = false;
 
@@ -65,11 +72,11 @@
 
     static boolean isDesktopSupported() {
         initWithLock();
-        return nativeLibraryLoaded;
+        return nativeLibraryLoaded && !supportedActions.isEmpty();
     }
 
     public boolean isSupported(Action type) {
-        return type != Action.PRINT && type != Action.EDIT;
+        return supportedActions.contains(type);
     }
 
     public void open(File file) throws IOException {