public class javafx.scene.control.skin.ContextMenuSkin implements javafx.scene.control.Skin<javafx.scene.control.ContextMenu>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javafx.scene.control.skin.ContextMenuSkin
  super_class: java.lang.Object
{
  private javafx.scene.control.ContextMenu popupMenu;
    descriptor: Ljavafx/scene/control/ContextMenu;
    flags: (0x0002) ACC_PRIVATE

  private final javafx.scene.layout.Region root;
    descriptor: Ljavafx/scene/layout/Region;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.javafx.scene.control.behavior.TwoLevelFocusPopupBehavior tlFocus;
    descriptor: Lcom/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior;
    flags: (0x0002) ACC_PRIVATE

  private double prefHeight;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private double shiftY;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private double prefWidth;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private double shiftX;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private final javafx.event.EventHandler<javafx.scene.input.KeyEvent> keyListener;
    descriptor: Ljavafx/event/EventHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/event/EventHandler<Ljavafx/scene/input/KeyEvent;>;

  public void <init>(javafx.scene.control.ContextMenu);
    descriptor: (Ljavafx/scene/control/ContextMenu;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javafx.scene.control.skin.ContextMenuSkin this
        start local 1 // javafx.scene.control.ContextMenu control
         0: .line 117
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 0 /* this */
            new javafx.scene.control.skin.ContextMenuSkin$1
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.skin.ContextMenuSkin$1.<init>:(Ljavafx/scene/control/skin/ContextMenuSkin;)V
            putfield javafx.scene.control.skin.ContextMenuSkin.keyListener:Ljavafx/event/EventHandler;
         2: .line 118
            aload 0 /* this */
            aload 1 /* control */
            putfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
         3: .line 120
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            getstatic javafx.scene.control.Menu.ON_SHOWING:Ljavafx/event/EventType;
            new javafx.scene.control.skin.ContextMenuSkin$2
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.skin.ContextMenuSkin$2.<init>:(Ljavafx/scene/control/skin/ContextMenuSkin;)V
            invokevirtual javafx.scene.control.ContextMenu.addEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         4: .line 129
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            getstatic javafx.scene.control.Menu.ON_SHOWN:Ljavafx/event/EventType;
            new javafx.scene.control.skin.ContextMenuSkin$3
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.skin.ContextMenuSkin$3.<init>:(Ljavafx/scene/control/skin/ContextMenuSkin;)V
            invokevirtual javafx.scene.control.ContextMenu.addEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         5: .line 145
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            getstatic javafx.scene.control.Menu.ON_HIDDEN:Ljavafx/event/EventType;
            new javafx.scene.control.skin.ContextMenuSkin$4
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.skin.ContextMenuSkin$4.<init>:(Ljavafx/scene/control/skin/ContextMenuSkin;)V
            invokevirtual javafx.scene.control.ContextMenu.addEventHandler:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         6: .line 157
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            getstatic javafx.stage.WindowEvent.WINDOW_HIDING:Ljavafx/event/EventType;
            new javafx.scene.control.skin.ContextMenuSkin$5
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.skin.ContextMenuSkin$5.<init>:(Ljavafx/scene/control/skin/ContextMenuSkin;)V
            invokevirtual javafx.scene.control.ContextMenu.addEventFilter:(Ljavafx/event/EventType;Ljavafx/event/EventHandler;)V
         7: .line 167
            getstatic com.sun.javafx.scene.control.Properties.IS_TOUCH_SUPPORTED:Z
            ifeq 11
         8: .line 168
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokevirtual javafx.scene.control.ContextMenu.getStyleClass:()Ljavafx/collections/ObservableList;
            ldc "text-input-context-menu"
            invokeinterface javafx.collections.ObservableList.contains:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 169
            aload 0 /* this */
            new com.sun.javafx.scene.control.EmbeddedTextContextMenuContent
            dup
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokespecial com.sun.javafx.scene.control.EmbeddedTextContextMenuContent.<init>:(Ljavafx/scene/control/ContextMenu;)V
            putfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
        10: .line 170
            goto 12
        11: .line 171
      StackMap locals: javafx.scene.control.skin.ContextMenuSkin javafx.scene.control.ContextMenu
      StackMap stack:
            aload 0 /* this */
            new com.sun.javafx.scene.control.ContextMenuContent
            dup
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokespecial com.sun.javafx.scene.control.ContextMenuContent.<init>:(Ljavafx/scene/control/ContextMenu;)V
            putfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
        12: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            invokevirtual javafx.scene.layout.Region.idProperty:()Ljavafx/beans/property/StringProperty;
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokevirtual javafx.scene.control.ContextMenu.idProperty:()Ljavafx/beans/property/StringProperty;
            invokevirtual javafx.beans.property.StringProperty.bind:(Ljavafx/beans/value/ObservableValue;)V
        13: .line 174
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            invokevirtual javafx.scene.layout.Region.styleProperty:()Ljavafx/beans/property/StringProperty;
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokevirtual javafx.scene.control.ContextMenu.styleProperty:()Ljavafx/beans/property/StringProperty;
            invokevirtual javafx.beans.property.StringProperty.bind:(Ljavafx/beans/value/ObservableValue;)V
        14: .line 175
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            invokevirtual javafx.scene.layout.Region.getStyleClass:()Ljavafx/collections/ObservableList;
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokevirtual javafx.scene.control.ContextMenu.getStyleClass:()Ljavafx/collections/ObservableList;
            invokeinterface javafx.collections.ObservableList.addAll:(Ljava/util/Collection;)Z
            pop
        15: .line 178
            invokestatic com.sun.javafx.scene.control.skin.Utils.isTwoLevelFocus:()Z
            ifeq 17
        16: .line 179
            aload 0 /* this */
            new com.sun.javafx.scene.control.behavior.TwoLevelFocusPopupBehavior
            dup
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            invokespecial com.sun.javafx.scene.control.behavior.TwoLevelFocusPopupBehavior.<init>:(Ljavafx/scene/control/PopupControl;)V
            putfield javafx.scene.control.skin.ContextMenuSkin.tlFocus:Lcom/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior;
        17: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.scene.control.ContextMenu control
        end local 0 // javafx.scene.control.skin.ContextMenuSkin this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Ljavafx/scene/control/skin/ContextMenuSkin;
            0   18     1  control  Ljavafx/scene/control/ContextMenu;
    MethodParameters:
         Name  Flags
      control  final

  public javafx.scene.control.ContextMenu getSkinnable();
    descriptor: ()Ljavafx/scene/control/ContextMenu;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.ContextMenuSkin this
         0: .line 193
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.popupMenu:Ljavafx/scene/control/ContextMenu;
            areturn
        end local 0 // javafx.scene.control.skin.ContextMenuSkin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/control/skin/ContextMenuSkin;

  public javafx.scene.Node getNode();
    descriptor: ()Ljavafx/scene/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.ContextMenuSkin this
         0: .line 198
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            areturn
        end local 0 // javafx.scene.control.skin.ContextMenuSkin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/control/skin/ContextMenuSkin;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.control.skin.ContextMenuSkin this
         0: .line 203
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            invokevirtual javafx.scene.layout.Region.idProperty:()Ljavafx/beans/property/StringProperty;
            invokevirtual javafx.beans.property.StringProperty.unbind:()V
         1: .line 204
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            invokevirtual javafx.scene.layout.Region.styleProperty:()Ljavafx/beans/property/StringProperty;
            invokevirtual javafx.beans.property.StringProperty.unbind:()V
         2: .line 205
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.tlFocus:Lcom/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior;
            ifnull 3
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.tlFocus:Lcom/sun/javafx/scene/control/behavior/TwoLevelFocusPopupBehavior;
            invokevirtual com.sun.javafx.scene.control.behavior.TwoLevelFocusPopupBehavior.dispose:()V
         3: .line 206
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.control.skin.ContextMenuSkin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/control/skin/ContextMenuSkin;

  private void performPopupShifts();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // javafx.scene.control.skin.ContextMenuSkin this
         0: .line 217
            aload 0 /* this */
            invokevirtual javafx.scene.control.skin.ContextMenuSkin.getSkinnable:()Ljavafx/scene/control/ContextMenu;
            astore 1 /* contextMenu */
        start local 1 // javafx.scene.control.ContextMenu contextMenu
         1: .line 218
            aload 1 /* contextMenu */
            invokevirtual javafx.scene.control.ContextMenu.getOwnerNode:()Ljavafx/scene/Node;
            astore 2 /* ownerNode */
        start local 2 // javafx.scene.Node ownerNode
         2: .line 219
            aload 2 /* ownerNode */
            ifnonnull 3
            return
         3: .line 221
      StackMap locals: javafx.scene.control.ContextMenu javafx.scene.Node
      StackMap stack:
            aload 2 /* ownerNode */
            aload 2 /* ownerNode */
            invokevirtual javafx.scene.Node.getLayoutBounds:()Ljavafx/geometry/Bounds;
            invokevirtual javafx.scene.Node.localToScreen:(Ljavafx/geometry/Bounds;)Ljavafx/geometry/Bounds;
            astore 3 /* ownerBounds */
        start local 3 // javafx.geometry.Bounds ownerBounds
         4: .line 222
            aload 3 /* ownerBounds */
            ifnonnull 5
            return
         5: .line 225
      StackMap locals: javafx.geometry.Bounds
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            ldc -1.0
            invokevirtual javafx.scene.layout.Region.prefHeight:(D)D
            dstore 4 /* rootPrefHeight */
        start local 4 // double rootPrefHeight
         6: .line 226
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.prefHeight:D
            dload 4 /* rootPrefHeight */
            dsub
            putfield javafx.scene.control.skin.ContextMenuSkin.shiftY:D
         7: .line 227
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.shiftY:D
            dconst_0
            dcmpl
            ifle 9
            aload 1 /* contextMenu */
            invokevirtual javafx.scene.control.ContextMenu.getY:()D
            dload 4 /* rootPrefHeight */
            dadd
            aload 3 /* ownerBounds */
            invokevirtual javafx.geometry.Bounds.getMinY:()D
            dcmpg
            ifge 9
         8: .line 228
            aload 1 /* contextMenu */
            aload 1 /* contextMenu */
            invokevirtual javafx.scene.control.ContextMenu.getY:()D
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.shiftY:D
            dadd
            invokevirtual javafx.scene.control.ContextMenu.setY:(D)V
         9: .line 232
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.root:Ljavafx/scene/layout/Region;
            ldc -1.0
            invokevirtual javafx.scene.layout.Region.prefWidth:(D)D
            dstore 6 /* rootPrefWidth */
        start local 6 // double rootPrefWidth
        10: .line 233
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.prefWidth:D
            dload 6 /* rootPrefWidth */
            dsub
            putfield javafx.scene.control.skin.ContextMenuSkin.shiftX:D
        11: .line 234
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.shiftX:D
            dconst_0
            dcmpl
            ifle 13
            aload 1 /* contextMenu */
            invokevirtual javafx.scene.control.ContextMenu.getX:()D
            dload 6 /* rootPrefWidth */
            dadd
            aload 3 /* ownerBounds */
            invokevirtual javafx.geometry.Bounds.getMinX:()D
            dcmpg
            ifge 13
        12: .line 235
            aload 1 /* contextMenu */
            aload 1 /* contextMenu */
            invokevirtual javafx.scene.control.ContextMenu.getX:()D
            aload 0 /* this */
            getfield javafx.scene.control.skin.ContextMenuSkin.shiftX:D
            dadd
            invokevirtual javafx.scene.control.ContextMenu.setX:(D)V
        13: .line 237
      StackMap locals: double
      StackMap stack:
            return
        end local 6 // double rootPrefWidth
        end local 4 // double rootPrefHeight
        end local 3 // javafx.geometry.Bounds ownerBounds
        end local 2 // javafx.scene.Node ownerNode
        end local 1 // javafx.scene.control.ContextMenu contextMenu
        end local 0 // javafx.scene.control.skin.ContextMenuSkin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Ljavafx/scene/control/skin/ContextMenuSkin;
            1   14     1     contextMenu  Ljavafx/scene/control/ContextMenu;
            2   14     2       ownerNode  Ljavafx/scene/Node;
            4   14     3     ownerBounds  Ljavafx/geometry/Bounds;
            6   14     4  rootPrefHeight  D
           10   14     6   rootPrefWidth  D

  public javafx.scene.control.Skinnable getSkinnable();
    descriptor: ()Ljavafx/scene/control/Skinnable;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual javafx.scene.control.skin.ContextMenuSkin.getSkinnable:()Ljavafx/scene/control/ContextMenu;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljavafx/scene/control/Skin<Ljavafx/scene/control/ContextMenu;>;
SourceFile: "ContextMenuSkin.java"
NestMembers:
  javafx.scene.control.skin.ContextMenuSkin$1  javafx.scene.control.skin.ContextMenuSkin$2  javafx.scene.control.skin.ContextMenuSkin$3  javafx.scene.control.skin.ContextMenuSkin$4  javafx.scene.control.skin.ContextMenuSkin$5
InnerClasses:
  javafx.scene.control.skin.ContextMenuSkin$1
  javafx.scene.control.skin.ContextMenuSkin$2
  javafx.scene.control.skin.ContextMenuSkin$3
  javafx.scene.control.skin.ContextMenuSkin$4
  javafx.scene.control.skin.ContextMenuSkin$5