class javafx.scene.Scene$KeyHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.Scene$KeyHandler
  super_class: java.lang.Object
{
  private boolean windowFocused;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final javafx.beans.InvalidationListener sceneWindowFocusedListener;
    descriptor: Ljavafx/beans/InvalidationListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final javafx.scene.Scene this$0;
    descriptor: Ljavafx/scene/Scene;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(javafx.scene.Scene);
    descriptor: (Ljavafx/scene/Scene;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.Scene$KeyHandler this
         0: .line 4004
            aload 0 /* this */
            aload 1
            putfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 4048
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic invalidated(Ljavafx/scene/Scene$KeyHandler;)Ljavafx/beans/InvalidationListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljavafx/beans/Observable;)V
                  javafx/scene/Scene$KeyHandler.lambda$0(Ljavafx/beans/Observable;)V (7)
                  (Ljavafx/beans/Observable;)V
            putfield javafx.scene.Scene$KeyHandler.sceneWindowFocusedListener:Ljavafx/beans/InvalidationListener;
         2: .line 4004
            return
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/Scene$KeyHandler;
    MethodParameters:
        Name  Flags
      this$0  final

  private void setFocusOwner(javafx.scene.Node);
    descriptor: (Ljavafx/scene/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javafx.scene.Scene$KeyHandler this
        start local 1 // javafx.scene.Node value
         0: .line 4009
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.oldFocusOwner:Ljavafx/scene/Node;
            ifnull 6
         1: .line 4010
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.oldFocusOwner:Ljavafx/scene/Node;
            invokevirtual javafx.scene.Node.getScene:()Ljavafx/scene/Scene;
            astore 2 /* s */
        start local 2 // javafx.scene.Scene s
         2: .line 4011
            aload 2 /* s */
            ifnull 6
         3: .line 4012
            aload 2 /* s */
            invokevirtual javafx.scene.Scene.getPeer:()Lcom/sun/javafx/tk/TKScene;
            astore 3 /* peer */
        start local 3 // com.sun.javafx.tk.TKScene peer
         4: .line 4013
            aload 3 /* peer */
            ifnull 6
         5: .line 4014
            aload 3 /* peer */
            invokeinterface com.sun.javafx.tk.TKScene.finishInputMethodComposition:()V
        end local 3 // com.sun.javafx.tk.TKScene peer
        end local 2 // javafx.scene.Scene s
         6: .line 4018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.focusOwner:Ljavafx/beans/property/ReadOnlyObjectWrapper;
            aload 1 /* value */
            invokevirtual javafx.beans.property.ReadOnlyObjectWrapper.set:(Ljava/lang/Object;)V
         7: .line 4019
            return
        end local 1 // javafx.scene.Node value
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Ljavafx/scene/Scene$KeyHandler;
            0    8     1  value  Ljavafx/scene/Node;
            2    6     2      s  Ljavafx/scene/Scene;
            4    6     3   peer  Lcom/sun/javafx/tk/TKScene;
    MethodParameters:
       Name  Flags
      value  final

  protected boolean isWindowFocused();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.Scene$KeyHandler this
         0: .line 4022
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.windowFocused:Z
            ireturn
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/Scene$KeyHandler;

  protected void setWindowFocused(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.Scene$KeyHandler this
        start local 1 // boolean value
         0: .line 4024
            aload 0 /* this */
            iload 1 /* value */
            putfield javafx.scene.Scene$KeyHandler.windowFocused:Z
         1: .line 4025
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFocusOwner:()Ljavafx/scene/Node;
            ifnull 3
         2: .line 4026
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFocusOwner:()Ljavafx/scene/Node;
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.windowFocused:Z
            invokevirtual javafx.scene.Node.setFocused:(Z)V
         3: .line 4028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.windowFocused:Z
            ifeq 6
         4: .line 4029
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.accessible:Lcom/sun/glass/ui/Accessible;
            ifnull 6
         5: .line 4030
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            getfield javafx.scene.Scene.accessible:Lcom/sun/glass/ui/Accessible;
            getstatic javafx.scene.AccessibleAttribute.FOCUS_NODE:Ljavafx/scene/AccessibleAttribute;
            invokevirtual com.sun.glass.ui.Accessible.sendNotification:(Ljavafx/scene/AccessibleAttribute;)V
         6: .line 4033
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean value
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Ljavafx/scene/Scene$KeyHandler;
            0    7     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  private void windowForSceneChanged(javafx.stage.Window, javafx.stage.Window);
    descriptor: (Ljavafx/stage/Window;Ljavafx/stage/Window;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javafx.scene.Scene$KeyHandler this
        start local 1 // javafx.stage.Window oldWindow
        start local 2 // javafx.stage.Window window
         0: .line 4036
            aload 1 /* oldWindow */
            ifnull 2
         1: .line 4037
            aload 1 /* oldWindow */
            invokevirtual javafx.stage.Window.focusedProperty:()Ljavafx/beans/property/ReadOnlyBooleanProperty;
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.sceneWindowFocusedListener:Ljavafx/beans/InvalidationListener;
            invokevirtual javafx.beans.property.ReadOnlyBooleanProperty.removeListener:(Ljavafx/beans/InvalidationListener;)V
         2: .line 4040
      StackMap locals:
      StackMap stack:
            aload 2 /* window */
            ifnull 6
         3: .line 4041
            aload 2 /* window */
            invokevirtual javafx.stage.Window.focusedProperty:()Ljavafx/beans/property/ReadOnlyBooleanProperty;
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.sceneWindowFocusedListener:Ljavafx/beans/InvalidationListener;
            invokevirtual javafx.beans.property.ReadOnlyBooleanProperty.addListener:(Ljavafx/beans/InvalidationListener;)V
         4: .line 4042
            aload 0 /* this */
            aload 2 /* window */
            invokevirtual javafx.stage.Window.isFocused:()Z
            invokevirtual javafx.scene.Scene$KeyHandler.setWindowFocused:(Z)V
         5: .line 4043
            goto 7
         6: .line 4044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual javafx.scene.Scene$KeyHandler.setWindowFocused:(Z)V
         7: .line 4046
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javafx.stage.Window window
        end local 1 // javafx.stage.Window oldWindow
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljavafx/scene/Scene$KeyHandler;
            0    8     1  oldWindow  Ljavafx/stage/Window;
            0    8     2     window  Ljavafx/stage/Window;
    MethodParameters:
           Name  Flags
      oldWindow  
      window     

  private void process(javafx.scene.input.KeyEvent);
    descriptor: (Ljavafx/scene/input/KeyEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javafx.scene.Scene$KeyHandler this
        start local 1 // javafx.scene.input.KeyEvent e
         0: .line 4051
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFocusOwner:()Ljavafx/scene/Node;
            astore 2 /* sceneFocusOwner */
        start local 2 // javafx.scene.Node sceneFocusOwner
         1: .line 4053
            aload 2 /* sceneFocusOwner */
            ifnull 2
            aload 2 /* sceneFocusOwner */
            invokevirtual javafx.scene.Node.getScene:()Ljavafx/scene/Scene;
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            if_acmpne 2
            aload 2 /* sceneFocusOwner */
            goto 3
         2: .line 4054
      StackMap locals: javafx.scene.Node
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
         3: .line 4052
      StackMap locals:
      StackMap stack: javafx.event.EventTarget
            astore 3 /* eventTarget */
        start local 3 // javafx.event.EventTarget eventTarget
         4: .line 4058
            aload 3 /* eventTarget */
            aload 1 /* e */
            invokestatic javafx.event.Event.fireEvent:(Ljavafx/event/EventTarget;Ljavafx/event/Event;)V
         5: .line 4059
            return
        end local 3 // javafx.event.EventTarget eventTarget
        end local 2 // javafx.scene.Node sceneFocusOwner
        end local 1 // javafx.scene.input.KeyEvent e
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Ljavafx/scene/Scene$KeyHandler;
            0    6     1                e  Ljavafx/scene/input/KeyEvent;
            1    6     2  sceneFocusOwner  Ljavafx/scene/Node;
            4    6     3      eventTarget  Ljavafx/event/EventTarget;
    MethodParameters:
      Name  Flags
      e     

  private void requestFocus(javafx.scene.Node);
    descriptor: (Ljavafx/scene/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.Scene$KeyHandler this
        start local 1 // javafx.scene.Node node
         0: .line 4062
            aload 0 /* this */
            getfield javafx.scene.Scene$KeyHandler.this$0:Ljavafx/scene/Scene;
            invokevirtual javafx.scene.Scene.getFocusOwner:()Ljavafx/scene/Node;
            aload 1 /* node */
            if_acmpeq 1
            aload 1 /* node */
            ifnull 2
            aload 1 /* node */
            invokevirtual javafx.scene.Node.isCanReceiveFocus:()Z
            ifne 2
         1: .line 4063
      StackMap locals:
      StackMap stack:
            return
         2: .line 4065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual javafx.scene.Scene$KeyHandler.setFocusOwner:(Ljavafx/scene/Node;)V
         3: .line 4066
            return
        end local 1 // javafx.scene.Node node
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/Scene$KeyHandler;
            0    4     1  node  Ljavafx/scene/Node;
    MethodParameters:
      Name  Flags
      node  

  private void lambda$0(javafx.beans.Observable);
    descriptor: (Ljavafx/beans/Observable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.Scene$KeyHandler this
        start local 1 // javafx.beans.Observable valueModel
         0: .line 4048
            aload 0 /* this */
            aload 1 /* valueModel */
            checkcast javafx.beans.property.ReadOnlyBooleanProperty
            invokevirtual javafx.beans.property.ReadOnlyBooleanProperty.get:()Z
            invokevirtual javafx.scene.Scene$KeyHandler.setWindowFocused:(Z)V
            return
        end local 1 // javafx.beans.Observable valueModel
        end local 0 // javafx.scene.Scene$KeyHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljavafx/scene/Scene$KeyHandler;
            0    1     1  valueModel  Ljavafx/beans/Observable;
}
SourceFile: "Scene.java"
NestHost: javafx.scene.Scene
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  KeyHandler = javafx.scene.Scene$KeyHandler of javafx.scene.Scene