class javafx.scene.Scene$ClickGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.Scene$ClickGenerator
  super_class: java.lang.Object
{
  private javafx.scene.Scene$ClickCounter lastPress;
    descriptor: Ljavafx/scene/Scene$ClickCounter;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<javafx.scene.input.MouseButton, javafx.scene.Scene$ClickCounter> counters;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljavafx/scene/input/MouseButton;Ljavafx/scene/Scene$ClickCounter;>;

  private java.util.List<javafx.event.EventTarget> pressedTargets;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljavafx/event/EventTarget;>;

  private java.util.List<javafx.event.EventTarget> releasedTargets;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljavafx/event/EventTarget;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // javafx.scene.Scene$ClickGenerator this
         0: .line 3500
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 3493
            aload 0 /* this */
            aconst_null
            putfield javafx.scene.Scene$ClickGenerator.lastPress:Ljavafx/scene/Scene$ClickCounter;
         2: .line 3495
            aload 0 /* this */
         3: .line 3496
            new java.util.EnumMap
            dup
            ldc Ljavafx/scene/input/MouseButton;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
         4: .line 3497
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield javafx.scene.Scene$ClickGenerator.pressedTargets:Ljava/util/List;
         5: .line 3498
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield javafx.scene.Scene$ClickGenerator.releasedTargets:Ljava/util/List;
         6: .line 3501
            invokestatic javafx.scene.input.MouseButton.values:()[Ljavafx/scene/input/MouseButton;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 11
      StackMap locals: javafx.scene.Scene$ClickGenerator top int int javafx.scene.input.MouseButton[]
      StackMap stack:
         7: aload 4
            iload 2
            aaload
            astore 1 /* mb */
        start local 1 // javafx.scene.input.MouseButton mb
         8: .line 3502
            aload 1 /* mb */
            getstatic javafx.scene.input.MouseButton.NONE:Ljavafx/scene/input/MouseButton;
            if_acmpeq 10
         9: .line 3503
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            aload 1 /* mb */
            new javafx.scene.Scene$ClickCounter
            dup
            invokespecial javafx.scene.Scene$ClickCounter.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 1 // javafx.scene.input.MouseButton mb
        10: .line 3501
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        11: iload 2
            iload 3
            if_icmplt 7
        12: .line 3506
            return
        end local 0 // javafx.scene.Scene$ClickGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljavafx/scene/Scene$ClickGenerator;
            8   10     1    mb  Ljavafx/scene/input/MouseButton;

  private javafx.scene.input.MouseEvent preProcess(javafx.scene.input.MouseEvent);
    descriptor: (Ljavafx/scene/input/MouseEvent;)Ljavafx/scene/input/MouseEvent;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=24, locals=4, args_size=2
        start local 0 // javafx.scene.Scene$ClickGenerator this
        start local 1 // javafx.scene.input.MouseEvent e
         0: .line 3509
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: javafx.scene.Scene$ClickGenerator javafx.scene.input.MouseEvent top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javafx.scene.Scene$ClickCounter
            astore 2 /* cc */
        start local 2 // javafx.scene.Scene$ClickCounter cc
         2: .line 3510
            aload 2 /* cc */
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneX:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneY:()D
            invokevirtual javafx.scene.Scene$ClickCounter.moved:(DD)V
        end local 2 // javafx.scene.Scene$ClickCounter cc
         3: .line 3509
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 3513
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getButton:()Ljavafx/scene/input/MouseButton;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javafx.scene.Scene$ClickCounter
            astore 2 /* cc */
        start local 2 // javafx.scene.Scene$ClickCounter cc
         5: .line 3514
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.lastPress:Ljavafx/scene/Scene$ClickCounter;
            ifnull 6
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.lastPress:Ljavafx/scene/Scene$ClickCounter;
            invokevirtual javafx.scene.Scene$ClickCounter.isStill:()Z
            goto 7
      StackMap locals: javafx.scene.Scene$ClickGenerator javafx.scene.input.MouseEvent javafx.scene.Scene$ClickCounter
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 3 /* still */
        start local 3 // boolean still
         8: .line 3516
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getEventType:()Ljavafx/event/EventType;
            getstatic javafx.scene.input.MouseEvent.MOUSE_PRESSED:Ljavafx/event/EventType;
            if_acmpne 16
         9: .line 3518
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isPrimaryButtonDown:()Z
            ifne 10
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            getstatic javafx.scene.input.MouseButton.PRIMARY:Ljavafx/scene/input/MouseButton;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javafx.scene.Scene$ClickCounter
            invokevirtual javafx.scene.Scene$ClickCounter.clear:()V
        10: .line 3519
      StackMap locals: int
      StackMap stack:
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isSecondaryButtonDown:()Z
            ifne 11
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            getstatic javafx.scene.input.MouseButton.SECONDARY:Ljavafx/scene/input/MouseButton;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javafx.scene.Scene$ClickCounter
            invokevirtual javafx.scene.Scene$ClickCounter.clear:()V
        11: .line 3520
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isMiddleButtonDown:()Z
            ifne 12
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            getstatic javafx.scene.input.MouseButton.MIDDLE:Ljavafx/scene/input/MouseButton;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javafx.scene.Scene$ClickCounter
            invokevirtual javafx.scene.Scene$ClickCounter.clear:()V
        12: .line 3522
      StackMap locals:
      StackMap stack:
            aload 2 /* cc */
            invokevirtual javafx.scene.Scene$ClickCounter.applyOut:()V
        13: .line 3523
            aload 2 /* cc */
            invokevirtual javafx.scene.Scene$ClickCounter.inc:()V
        14: .line 3524
            aload 2 /* cc */
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneX:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneY:()D
            invokevirtual javafx.scene.Scene$ClickCounter.start:(DD)V
        15: .line 3525
            aload 0 /* this */
            aload 2 /* cc */
            putfield javafx.scene.Scene$ClickGenerator.lastPress:Ljavafx/scene/Scene$ClickCounter;
        16: .line 3528
      StackMap locals:
      StackMap stack:
            new javafx.scene.input.MouseEvent
            dup
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getEventType:()Ljavafx/event/EventType;
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneX:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneY:()D
        17: .line 3529
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getScreenX:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getScreenY:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getButton:()Ljavafx/scene/input/MouseButton;
        18: .line 3530
            aload 2 /* cc */
            ifnull 19
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getEventType:()Ljavafx/event/EventType;
            getstatic javafx.scene.input.MouseEvent.MOUSE_MOVED:Ljavafx/event/EventType;
            if_acmpeq 19
            aload 2 /* cc */
            invokevirtual javafx.scene.Scene$ClickCounter.get:()I
            goto 20
      StackMap locals: javafx.scene.Scene$ClickGenerator javafx.scene.input.MouseEvent javafx.scene.Scene$ClickCounter int
      StackMap stack: new 16 new 16 javafx.event.EventType double double double double javafx.scene.input.MouseButton
        19: iconst_0
        20: .line 3531
      StackMap locals: javafx.scene.Scene$ClickGenerator javafx.scene.input.MouseEvent javafx.scene.Scene$ClickCounter int
      StackMap stack: new 16 new 16 javafx.event.EventType double double double double javafx.scene.input.MouseButton int
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isShiftDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isControlDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isAltDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isMetaDown:()Z
        21: .line 3532
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isPrimaryButtonDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isMiddleButtonDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isSecondaryButtonDown:()Z
        22: .line 3533
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isSynthesized:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isPopupTrigger:()Z
            iload 3 /* still */
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getPickResult:()Ljavafx/scene/input/PickResult;
        23: .line 3528
            invokespecial javafx.scene.input.MouseEvent.<init>:(Ljavafx/event/EventType;DDDDLjavafx/scene/input/MouseButton;IZZZZZZZZZZLjavafx/scene/input/PickResult;)V
            areturn
        end local 3 // boolean still
        end local 2 // javafx.scene.Scene$ClickCounter cc
        end local 1 // javafx.scene.input.MouseEvent e
        end local 0 // javafx.scene.Scene$ClickGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Ljavafx/scene/Scene$ClickGenerator;
            0   24     1      e  Ljavafx/scene/input/MouseEvent;
            2    3     2     cc  Ljavafx/scene/Scene$ClickCounter;
            5   24     2     cc  Ljavafx/scene/Scene$ClickCounter;
            8   24     3  still  Z
    MethodParameters:
      Name  Flags
      e     

  private void postProcess(javafx.scene.input.MouseEvent, javafx.scene.Scene$TargetWrapper, javafx.scene.Scene$TargetWrapper);
    descriptor: (Ljavafx/scene/input/MouseEvent;Ljavafx/scene/Scene$TargetWrapper;Ljavafx/scene/Scene$TargetWrapper;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=26, locals=9, args_size=4
        start local 0 // javafx.scene.Scene$ClickGenerator this
        start local 1 // javafx.scene.input.MouseEvent e
        start local 2 // javafx.scene.Scene$TargetWrapper target
        start local 3 // javafx.scene.Scene$TargetWrapper pickedTarget
         0: .line 3538
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getEventType:()Ljavafx/event/EventType;
            getstatic javafx.scene.input.MouseEvent.MOUSE_RELEASED:Ljavafx/event/EventType;
            if_acmpne 24
         1: .line 3539
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.counters:Ljava/util/Map;
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getButton:()Ljavafx/scene/input/MouseButton;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javafx.scene.Scene$ClickCounter
            astore 4 /* cc */
        start local 4 // javafx.scene.Scene$ClickCounter cc
         2: .line 3541
            aload 2 /* target */
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.pressedTargets:Ljava/util/List;
            invokevirtual javafx.scene.Scene$TargetWrapper.fillHierarchy:(Ljava/util/List;)V
         3: .line 3542
            aload 3 /* pickedTarget */
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.releasedTargets:Ljava/util/List;
            invokevirtual javafx.scene.Scene$TargetWrapper.fillHierarchy:(Ljava/util/List;)V
         4: .line 3543
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.pressedTargets:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         5: .line 3544
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.releasedTargets:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 6 /* j */
        start local 6 // int j
         6: .line 3546
            aconst_null
            astore 7 /* clickedTarget */
        start local 7 // javafx.event.EventTarget clickedTarget
         7: .line 3547
            goto 11
         8: .line 3548
      StackMap locals: javafx.scene.Scene$ClickGenerator javafx.scene.input.MouseEvent javafx.scene.Scene$TargetWrapper javafx.scene.Scene$TargetWrapper javafx.scene.Scene$ClickCounter int int javafx.event.EventTarget
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.pressedTargets:Ljava/util/List;
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javafx.event.EventTarget
            astore 7 /* clickedTarget */
         9: .line 3549
            iinc 5 /* i */ -1
        10: .line 3550
            iinc 6 /* j */ -1
        11: .line 3547
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            iflt 12
            iload 6 /* j */
            iflt 12
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.pressedTargets:Ljava/util/List;
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.releasedTargets:Ljava/util/List;
            iload 6 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            if_acmpeq 8
        12: .line 3553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.pressedTargets:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        13: .line 3554
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.releasedTargets:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        14: .line 3556
            aload 7 /* clickedTarget */
            ifnull 24
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.lastPress:Ljavafx/scene/Scene$ClickCounter;
            ifnull 24
        15: .line 3557
            new javafx.scene.input.MouseEvent
            dup
            aconst_null
            aload 7 /* clickedTarget */
        16: .line 3558
            getstatic javafx.scene.input.MouseEvent.MOUSE_CLICKED:Ljavafx/event/EventType;
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneX:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getSceneY:()D
        17: .line 3559
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getScreenX:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getScreenY:()D
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getButton:()Ljavafx/scene/input/MouseButton;
        18: .line 3560
            aload 4 /* cc */
            invokevirtual javafx.scene.Scene$ClickCounter.get:()I
        19: .line 3561
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isShiftDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isControlDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isAltDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isMetaDown:()Z
        20: .line 3562
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isPrimaryButtonDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isMiddleButtonDown:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isSecondaryButtonDown:()Z
        21: .line 3563
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isSynthesized:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.isPopupTrigger:()Z
            aload 0 /* this */
            getfield javafx.scene.Scene$ClickGenerator.lastPress:Ljavafx/scene/Scene$ClickCounter;
            invokevirtual javafx.scene.Scene$ClickCounter.isStill:()Z
            aload 1 /* e */
            invokevirtual javafx.scene.input.MouseEvent.getPickResult:()Ljavafx/scene/input/PickResult;
        22: .line 3557
            invokespecial javafx.scene.input.MouseEvent.<init>:(Ljava/lang/Object;Ljavafx/event/EventTarget;Ljavafx/event/EventType;DDDDLjavafx/scene/input/MouseButton;IZZZZZZZZZZLjavafx/scene/input/PickResult;)V
            astore 8 /* click */
        start local 8 // javafx.scene.input.MouseEvent click
        23: .line 3564
            aload 7 /* clickedTarget */
            aload 8 /* click */
            invokestatic javafx.event.Event.fireEvent:(Ljavafx/event/EventTarget;Ljavafx/event/Event;)V
        end local 8 // javafx.scene.input.MouseEvent click
        end local 7 // javafx.event.EventTarget clickedTarget
        end local 6 // int j
        end local 5 // int i
        end local 4 // javafx.scene.Scene$ClickCounter cc
        24: .line 3567
      StackMap locals: javafx.scene.Scene$ClickGenerator javafx.scene.input.MouseEvent javafx.scene.Scene$TargetWrapper javafx.scene.Scene$TargetWrapper
      StackMap stack:
            return
        end local 3 // javafx.scene.Scene$TargetWrapper pickedTarget
        end local 2 // javafx.scene.Scene$TargetWrapper target
        end local 1 // javafx.scene.input.MouseEvent e
        end local 0 // javafx.scene.Scene$ClickGenerator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Ljavafx/scene/Scene$ClickGenerator;
            0   25     1              e  Ljavafx/scene/input/MouseEvent;
            0   25     2         target  Ljavafx/scene/Scene$TargetWrapper;
            0   25     3   pickedTarget  Ljavafx/scene/Scene$TargetWrapper;
            2   24     4             cc  Ljavafx/scene/Scene$ClickCounter;
            5   24     5              i  I
            6   24     6              j  I
            7   24     7  clickedTarget  Ljavafx/event/EventTarget;
           23   24     8          click  Ljavafx/scene/input/MouseEvent;
    MethodParameters:
              Name  Flags
      e             
      target        
      pickedTarget  
}
SourceFile: "Scene.java"
NestHost: javafx.scene.Scene
InnerClasses:
  ClickCounter = javafx.scene.Scene$ClickCounter of javafx.scene.Scene
  ClickGenerator = javafx.scene.Scene$ClickGenerator of javafx.scene.Scene
  private TargetWrapper = javafx.scene.Scene$TargetWrapper of javafx.scene.Scene