public class sun.awt.X11.XSystemTrayPeer implements java.awt.peer.SystemTrayPeer, sun.awt.X11.XMSelectionListener
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.awt.X11.XSystemTrayPeer
super_class: java.lang.Object
{
private static final sun.util.logging.PlatformLogger log;
descriptor: Lsun/util/logging/PlatformLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
java.awt.SystemTray target;
descriptor: Ljava/awt/SystemTray;
flags: (0x0000)
static sun.awt.X11.XSystemTrayPeer peerInstance;
descriptor: Lsun/awt/X11/XSystemTrayPeer;
flags: (0x0008) ACC_STATIC
private volatile boolean available;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final sun.awt.X11.XMSelection selection;
descriptor: Lsun/awt/X11/XMSelection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int SCREEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String SYSTEM_TRAY_PROPERTY_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "systemTray"
private static final sun.awt.X11.XAtom _NET_SYSTEM_TRAY;
descriptor: Lsun/awt/X11/XAtom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final sun.awt.X11.XAtom _XEMBED_INFO;
descriptor: Lsun/awt/X11/XAtom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final sun.awt.X11.XAtom _NET_SYSTEM_TRAY_OPCODE;
descriptor: Lsun/awt/X11/XAtom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final sun.awt.X11.XAtom _NET_WM_ICON;
descriptor: Lsun/awt/X11/XAtom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long SYSTEM_TRAY_REQUEST_DOCK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "sun.awt.X11.XSystemTrayPeer"
invokestatic sun.util.logging.PlatformLogger.getLogger:(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
putstatic sun.awt.X11.XSystemTrayPeer.log:Lsun/util/logging/PlatformLogger;
1: ldc "_NET_SYSTEM_TRAY_S0"
invokestatic sun.awt.X11.XAtom.get:(Ljava/lang/String;)Lsun/awt/X11/XAtom;
putstatic sun.awt.X11.XSystemTrayPeer._NET_SYSTEM_TRAY:Lsun/awt/X11/XAtom;
2: ldc "_XEMBED_INFO"
invokestatic sun.awt.X11.XAtom.get:(Ljava/lang/String;)Lsun/awt/X11/XAtom;
putstatic sun.awt.X11.XSystemTrayPeer._XEMBED_INFO:Lsun/awt/X11/XAtom;
3: ldc "_NET_SYSTEM_TRAY_OPCODE"
invokestatic sun.awt.X11.XAtom.get:(Ljava/lang/String;)Lsun/awt/X11/XAtom;
putstatic sun.awt.X11.XSystemTrayPeer._NET_SYSTEM_TRAY_OPCODE:Lsun/awt/X11/XAtom;
4: ldc "_NET_WM_ICON"
invokestatic sun.awt.X11.XAtom.get:(Ljava/lang/String;)Lsun/awt/X11/XAtom;
putstatic sun.awt.X11.XSystemTrayPeer._NET_WM_ICON:Lsun/awt/X11/XAtom;
5: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.awt.SystemTray);
descriptor: (Ljava/awt/SystemTray;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.awt.X11.XMSelection
dup
ldc "_NET_SYSTEM_TRAY"
invokespecial sun.awt.X11.XMSelection.<init>:(Ljava/lang/String;)V
putfield sun.awt.X11.XSystemTrayPeer.selection:Lsun/awt/X11/XMSelection;
2: aload 0
aload 1
putfield sun.awt.X11.XSystemTrayPeer.target:Ljava/awt/SystemTray;
3: aload 0
putstatic sun.awt.X11.XSystemTrayPeer.peerInstance:Lsun/awt/X11/XSystemTrayPeer;
4: aload 0
getfield sun.awt.X11.XSystemTrayPeer.selection:Lsun/awt/X11/XMSelection;
aload 0
invokevirtual sun.awt.X11.XMSelection.addSelectionListener:(Lsun/awt/X11/XMSelectionListener;)V
5: aload 0
getfield sun.awt.X11.XSystemTrayPeer.selection:Lsun/awt/X11/XMSelection;
iconst_0
invokevirtual sun.awt.X11.XMSelection.getOwner:(I)J
lstore 2
start local 2 6: aload 0
lload 2
lconst_0
lcmp
ifeq 7
iconst_1
goto 8
StackMap locals: sun.awt.X11.XSystemTrayPeer java.awt.SystemTray long
StackMap stack: sun.awt.X11.XSystemTrayPeer
7: iconst_0
StackMap locals: sun.awt.X11.XSystemTrayPeer java.awt.SystemTray long
StackMap stack: sun.awt.X11.XSystemTrayPeer int
8: putfield sun.awt.X11.XSystemTrayPeer.available:Z
9: getstatic sun.awt.X11.XSystemTrayPeer.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 11
10: getstatic sun.awt.X11.XSystemTrayPeer.log:Lsun/util/logging/PlatformLogger;
new java.lang.StringBuilder
dup
ldc " check if system tray is available. selection owner: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/awt/X11/XSystemTrayPeer;
0 12 1 target Ljava/awt/SystemTray;
6 12 2 selection_owner J
MethodParameters:
Name Flags
target
public void ownerChanged(int, sun.awt.X11.XMSelection, long, long, long);
descriptor: (ILsun/awt/X11/XMSelection;JJJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 7 0: iload 1
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.X11.XSystemTrayPeer.available:Z
ifne 6
3: aload 0
iconst_1
putfield sun.awt.X11.XSystemTrayPeer.available:Z
4: aload 0
ldc "systemTray"
aconst_null
aload 0
getfield sun.awt.X11.XSystemTrayPeer.target:Ljava/awt/SystemTray;
invokevirtual sun.awt.X11.XSystemTrayPeer.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.X11.XSystemTrayPeer.removeTrayPeers:()V
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.X11.XSystemTrayPeer.createTrayPeers:()V
8: return
end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/awt/X11/XSystemTrayPeer;
0 9 1 screen I
0 9 2 sel Lsun/awt/X11/XMSelection;
0 9 3 newOwner J
0 9 5 data J
0 9 7 timestamp J
MethodParameters:
Name Flags
screen
sel
newOwner
data
timestamp
public void ownerDeath(int, sun.awt.X11.XMSelection, long);
descriptor: (ILsun/awt/X11/XMSelection;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.X11.XSystemTrayPeer.available:Z
ifeq 6
3: aload 0
iconst_0
putfield sun.awt.X11.XSystemTrayPeer.available:Z
4: aload 0
ldc "systemTray"
aload 0
getfield sun.awt.X11.XSystemTrayPeer.target:Ljava/awt/SystemTray;
aconst_null
invokevirtual sun.awt.X11.XSystemTrayPeer.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: aload 0
invokevirtual sun.awt.X11.XSystemTrayPeer.removeTrayPeers:()V
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/awt/X11/XSystemTrayPeer;
0 7 1 screen I
0 7 2 sel Lsun/awt/X11/XMSelection;
0 7 3 deadOwner J
MethodParameters:
Name Flags
screen
sel
deadOwner
public void selectionChanged(int, sun.awt.X11.XMSelection, long, sun.awt.X11.XPropertyEvent);
descriptor: (ILsun/awt/X11/XMSelection;JLsun/awt/X11/XPropertyEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/X11/XSystemTrayPeer;
0 1 1 screen I
0 1 2 sel Lsun/awt/X11/XMSelection;
0 1 3 owner J
0 1 5 event Lsun/awt/X11/XPropertyEvent;
MethodParameters:
Name Flags
screen
sel
owner
event
public java.awt.Dimension getTrayIconSize();
descriptor: ()Ljava/awt/Dimension;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.awt.Dimension
dup
bipush 24
bipush 24
invokespecial java.awt.Dimension.<init>:(II)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/X11/XSystemTrayPeer;
boolean isAvailable();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.X11.XSystemTrayPeer.available:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/X11/XSystemTrayPeer;
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.X11.XSystemTrayPeer.selection:Lsun/awt/X11/XMSelection;
aload 0
invokevirtual sun.awt.X11.XMSelection.removeSelectionListener:(Lsun/awt/X11/XMSelectionListener;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/X11/XSystemTrayPeer;
void addTrayIcon(sun.awt.X11.XTrayIconPeer);
descriptor: (Lsun/awt/X11/XTrayIconPeer;)V
flags: (0x0000)
Code:
stack=11, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.X11.XSystemTrayPeer.selection:Lsun/awt/X11/XMSelection;
iconst_0
invokevirtual sun.awt.X11.XMSelection.getOwner:(I)J
lstore 2
start local 2 1: getstatic sun.awt.X11.XSystemTrayPeer.log:Lsun/util/logging/PlatformLogger;
getstatic sun.util.logging.PlatformLogger$Level.FINE:Lsun/util/logging/PlatformLogger$Level;
invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
ifeq 3
2: getstatic sun.awt.X11.XSystemTrayPeer.log:Lsun/util/logging/PlatformLogger;
new java.lang.StringBuilder
dup
ldc " send SYSTEM_TRAY_REQUEST_DOCK message to owner: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.util.logging.PlatformLogger.fine:(Ljava/lang/String;)V
3: StackMap locals: long
StackMap stack:
lload 2
lconst_0
lcmp
ifne 5
4: new java.awt.AWTException
dup
ldc "TrayIcon couldn't be displayed."
invokespecial java.awt.AWTException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.awt.X11.XTrayIconPeer.getWindow:()J
lstore 4
start local 4 6: iconst_2
newarray 11
dup
iconst_1
lconst_1
lastore
astore 6
start local 6 7: aload 6
invokestatic sun.awt.X11.Native.card32ToData:([J)J
lstore 7
start local 7 8: getstatic sun.awt.X11.XSystemTrayPeer._XEMBED_INFO:Lsun/awt/X11/XAtom;
lload 4
lload 7
aload 6
arraylength
invokevirtual sun.awt.X11.XAtom.setAtomData:(JJI)V
9: aload 0
lload 2
lconst_0
lload 4
lconst_0
lconst_0
invokevirtual sun.awt.X11.XSystemTrayPeer.sendMessage:(JJJJJ)V
10: return
end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/awt/X11/XSystemTrayPeer;
0 11 1 tiPeer Lsun/awt/X11/XTrayIconPeer;
1 11 2 selection_owner J
6 11 4 tray_window J
7 11 6 data [J
8 11 7 data_ptr J
Exceptions:
throws java.awt.AWTException
MethodParameters:
Name Flags
tiPeer
void sendMessage(long, long, long, long, long);
descriptor: (JJJJJ)V
flags: (0x0000)
Code:
stack=9, locals=14, args_size=6
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 0: new sun.awt.X11.XClientMessageEvent
dup
invokespecial sun.awt.X11.XClientMessageEvent.<init>:()V
astore 11
start local 11 1: aload 11
bipush 33
invokevirtual sun.awt.X11.XClientMessageEvent.set_type:(I)V
2: aload 11
lload 1
invokevirtual sun.awt.X11.XClientMessageEvent.set_window:(J)V
3: aload 11
bipush 32
invokevirtual sun.awt.X11.XClientMessageEvent.set_format:(I)V
4: aload 11
getstatic sun.awt.X11.XSystemTrayPeer._NET_SYSTEM_TRAY_OPCODE:Lsun/awt/X11/XAtom;
invokevirtual sun.awt.X11.XAtom.getAtom:()J
invokevirtual sun.awt.X11.XClientMessageEvent.set_message_type:(J)V
5: aload 11
iconst_0
lconst_0
invokevirtual sun.awt.X11.XClientMessageEvent.set_data:(IJ)V
6: aload 11
iconst_1
lload 3
invokevirtual sun.awt.X11.XClientMessageEvent.set_data:(IJ)V
7: aload 11
iconst_2
lload 5
invokevirtual sun.awt.X11.XClientMessageEvent.set_data:(IJ)V
8: aload 11
iconst_3
lload 7
invokevirtual sun.awt.X11.XClientMessageEvent.set_data:(IJ)V
9: aload 11
iconst_4
lload 9
invokevirtual sun.awt.X11.XClientMessageEvent.set_data:(IJ)V
10: invokestatic sun.awt.X11.XToolkit.awtLock:()V
11: invokestatic sun.awt.X11.XToolkit.getDisplay:()J
lload 1
iconst_0
12: lconst_0
aload 11
getfield sun.awt.X11.XClientMessageEvent.pData:J
13: invokestatic sun.awt.X11.XlibWrapper.XSendEvent:(JJZJJ)I
pop
14: goto 18
StackMap locals: sun.awt.X11.XSystemTrayPeer long long long long long sun.awt.X11.XClientMessageEvent
StackMap stack: java.lang.Throwable
15: astore 12
16: invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
17: aload 12
athrow
18: StackMap locals:
StackMap stack:
invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
19: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 13
21: aload 11
invokevirtual sun.awt.X11.XClientMessageEvent.dispose:()V
22: aload 13
athrow
23: StackMap locals:
StackMap stack:
aload 11
invokevirtual sun.awt.X11.XClientMessageEvent.dispose:()V
24: return
end local 11 end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/awt/X11/XSystemTrayPeer;
0 25 1 win J
0 25 3 msg J
0 25 5 data1 J
0 25 7 data2 J
0 25 9 data3 J
1 25 11 xev Lsun/awt/X11/XClientMessageEvent;
Exception table:
from to target type
11 15 15 any
1 20 20 any
MethodParameters:
Name Flags
win
msg
data1
data2
data3
static sun.awt.X11.XSystemTrayPeer getPeerInstance();
descriptor: ()Lsun/awt/X11/XSystemTrayPeer;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.awt.X11.XSystemTrayPeer.peerInstance:Lsun/awt/X11/XSystemTrayPeer;
areturn
LocalVariableTable:
Start End Slot Name Signature
private void firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.awt.X11.XSystemTrayPeer$1
dup
aload 0
aload 1
aload 2
aload 3
invokespecial sun.awt.X11.XSystemTrayPeer$1.<init>:(Lsun/awt/X11/XSystemTrayPeer;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
astore 4
start local 4 1: aload 0
aload 4
invokevirtual sun.awt.X11.XSystemTrayPeer.invokeOnEachAppContext:(Ljava/lang/Runnable;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/X11/XSystemTrayPeer;
0 3 1 propertyName Ljava/lang/String;
0 3 2 oldValue Ljava/lang/Object;
0 3 3 newValue Ljava/lang/Object;
1 3 4 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
propertyName final
oldValue final
newValue final
private void createTrayPeers();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new sun.awt.X11.XSystemTrayPeer$2
dup
aload 0
invokespecial sun.awt.X11.XSystemTrayPeer$2.<init>:(Lsun/awt/X11/XSystemTrayPeer;)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual sun.awt.X11.XSystemTrayPeer.invokeOnEachAppContext:(Ljava/lang/Runnable;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/X11/XSystemTrayPeer;
1 3 1 runnable Ljava/lang/Runnable;
private void removeTrayPeers();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new sun.awt.X11.XSystemTrayPeer$3
dup
aload 0
invokespecial sun.awt.X11.XSystemTrayPeer$3.<init>:(Lsun/awt/X11/XSystemTrayPeer;)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual sun.awt.X11.XSystemTrayPeer.invokeOnEachAppContext:(Ljava/lang/Runnable;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/X11/XSystemTrayPeer;
1 3 1 runnable Ljava/lang/Runnable;
private void invokeOnEachAppContext(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: invokestatic sun.awt.AppContext.getAppContexts:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: sun.awt.X11.XSystemTrayPeer java.lang.Runnable top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.awt.AppContext
astore 2
start local 2 2: aload 2
aload 1
invokestatic sun.awt.SunToolkit.invokeLaterOnAppContext:(Lsun/awt/AppContext;Ljava/lang/Runnable;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/awt/X11/XSystemTrayPeer;
0 5 1 runnable Ljava/lang/Runnable;
2 3 2 appContext Lsun/awt/AppContext;
MethodParameters:
Name Flags
runnable
}
SourceFile: "XSystemTrayPeer.java"
NestMembers:
sun.awt.X11.XSystemTrayPeer$1 sun.awt.X11.XSystemTrayPeer$2 sun.awt.X11.XSystemTrayPeer$3
InnerClasses:
sun.awt.X11.XSystemTrayPeer$1
sun.awt.X11.XSystemTrayPeer$2
sun.awt.X11.XSystemTrayPeer$3
public final Level = sun.util.logging.PlatformLogger$Level of sun.util.logging.PlatformLogger