Program: 36545
Project: 36545
Buggy source:
/** 
 * {@inheritDoc} 
 */
@Override public void init(){
  inputs.getInput("String_Node_Str").bind(Player.playing.o);
  loadSkin("String_Node_Str",root);
  mainImage.setBorderVisible(true);
  mainImage.setBorderToImage(true);
  layAnchor(root,mainImage.getPane(),0d);
  Icon nextB=new Icon(ARROW_RIGHT,18,"String_Node_Str",this::nextImage);
  nextB.setMouseTransparent(true);
  Pane nextP=new StackPane(nextB);
  nextP.setOnMouseClicked(nextB.getOnMouseClicked());
  nextP.getStyleClass().setAll("String_Node_Str");
  nextP.prefWidthProperty().bind(root.widthProperty().divide(10));
  nextP.setMinWidth(20);
  nextP.visibleProperty().bind(nextP.opacityProperty().isNotEqualTo(0));
  nextP.setBackground(bgr(Color.color(0,0,0,0.2)));
  Icon prevB=new Icon(ARROW_LEFT,18,"String_Node_Str",this::prevImage);
  prevB.setMouseTransparent(true);
  Pane prevP=new StackPane(prevB);
  prevP.setOnMouseClicked(prevB.getOnMouseClicked());
  prevP.getStyleClass().setAll("String_Node_Str");
  prevP.prefWidthProperty().bind(root.widthProperty().divide(10));
  prevP.setMinWidth(20);
  prevP.visibleProperty().bind(prevP.opacityProperty().isNotEqualTo(0));
  prevP.setBackground(bgr(Color.color(0,0,0,0.2)));
  layAnchor(root,prevP,0d,null,0d,0d);
  layAnchor(root,nextP,0d,0d,0d,null);
  navigAnim=new Anim(millis(300),p -> {
    prevP.setOpacity(p);
    nextP.setOpacity(p);
    prevB.setTranslateX(+40 * (p - 1));
    nextB.setTranslateX(-40 * (p - 1));
  }
);
  navigAnim.affector.accept(0d);
  EventReducer inactive=toLast(1000,() -> {
    if (!nextP.isHover() && !prevP.isHover())     navigAnim.playClose();
  }
);
  EventReducer active=toFirstDelayed(400,navigAnim::playOpen);
  root.addEventFilter(MOUSE_MOVED,e -> {
    if (thumb_root.getOpacity() == 0) {
      if (prevP.getOpacity() != 1)       active.push(e);
 else       inactive.push(e);
    }
  }
);
  thumbAnim=new Anim(millis(500),thumb_root::setOpacity);
  thumb_root.visibleProperty().bind(thumb_root.opacityProperty().isNotEqualTo(0));
  thumb_root.toFront();
  setAnchors(thumb_root,0d);
  root.heightProperty().addListener((o,ov,nv) -> setBottomAnchor(thumb_root,nv.doubleValue() * 0.3));
  root.setOnMouseClicked(e -> {
    if (e.getButton() == SECONDARY && showThumbnails.getValue()) {
      showThumbnails.setCycledNapplyValue();
      e.consume();
    }
    if (e.getButton() == PRIMARY) {
      if (e.getY() > 0.8 * root.getHeight() && e.getX() > 0.7 * root.getWidth()) {
        theater_mode.setCycledNapplyValue();
      }
 else {
        showThumbnails.setCycledNapplyValue();
      }
      e.consume();
    }
  }
);
  thumb_root.setOnMouseClicked(e -> {
    showThumbnails.setCycledNapplyValue();
    e.consume();
  }
);
  root.addEventFilter(MOUSE_ENTERED,e -> {
    if (slideshow_on.getValue())     slideshow.pause();
  }
);
  root.addEventFilter(MOUSE_EXITED,e -> {
    if (slideshow_on.getValue())     slideshow.unpause();
  }
);
  ChangeListener<File> locationChange=(o,ov,nv) -> readThumbnails();
  folder.addListener(locationChange);
  d(() -> folder.removeListener(locationChange));
  root.setOnDragOver(DragUtil.audioDragAccepthandler);
  root.setOnDragOver(DragUtil.imgFileDragAccepthandler);
  root.setOnDragOver(DragUtil.fileDragAccepthandler);
  root.setOnDragDropped(e -> {
    if (e.getDragboard().hasFiles()) {
      dataChanged(e.getDragboard().getFiles().get(0));
      e.setDropCompleted(true);
      e.consume();
      return;
    }
    if (e.getGestureSource().equals(mainImage.getPane()))     return;
    if (DragUtil.hasAudio(e.getDragboard())) {
      List<Item> items=DragUtil.getAudioItems(e);
      if (!items.isEmpty())       dataChanged(items.get(0));
      e.setDropCompleted(true);
      e.consume();
    }
 else     if (DragUtil.hasImage(e.getDragboard())) {
      DragUtil.getImages(e).use(this::showImages,FX).showProgress(App.getWindow().taskAdd()).run();
      e.setDropCompleted(true);
      e.consume();
    }
  }
);
  thumb_root.setOnScroll(Event::consume);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc} 
 */
@Override public void init(){
  inputs.getInput("String_Node_Str").bind(Player.playing.o);
  loadSkin("String_Node_Str",root);
  mainImage.setBorderVisible(true);
  mainImage.setBorderToImage(true);
  layAnchor(root,mainImage.getPane(),0d);
  Icon nextB=new Icon(ARROW_RIGHT,18,"String_Node_Str",this::nextImage);
  nextB.setMouseTransparent(true);
  Pane nextP=new StackPane(nextB);
  nextP.setOnMouseClicked(nextB.getOnMouseClicked());
  nextP.getStyleClass().setAll("String_Node_Str");
  nextP.prefWidthProperty().bind(root.widthProperty().divide(10));
  nextP.setMinWidth(20);
  nextP.visibleProperty().bind(nextP.opacityProperty().isNotEqualTo(0));
  nextP.setBackground(bgr(Color.color(0,0,0,0.2)));
  Icon prevB=new Icon(ARROW_LEFT,18,"String_Node_Str",this::prevImage);
  prevB.setMouseTransparent(true);
  Pane prevP=new StackPane(prevB);
  prevP.setOnMouseClicked(prevB.getOnMouseClicked());
  prevP.getStyleClass().setAll("String_Node_Str");
  prevP.prefWidthProperty().bind(root.widthProperty().divide(10));
  prevP.setMinWidth(20);
  prevP.visibleProperty().bind(prevP.opacityProperty().isNotEqualTo(0));
  prevP.setBackground(bgr(Color.color(0,0,0,0.2)));
  layAnchor(root,prevP,0d,null,0d,0d);
  layAnchor(root,nextP,0d,0d,0d,null);
  navigAnim=new Anim(millis(300),p -> {
    prevP.setOpacity(p);
    nextP.setOpacity(p);
    prevB.setTranslateX(+40 * (p - 1));
    nextB.setTranslateX(-40 * (p - 1));
  }
);
  navigAnim.affector.accept(0d);
  EventReducer inactive=toLast(1000,() -> {
    if (!nextP.isHover() && !prevP.isHover())     navigAnim.playClose();
  }
);
  EventReducer active=toFirstDelayed(400,navigAnim::playOpen);
  root.addEventFilter(MOUSE_MOVED,e -> {
    if (thumb_root.getOpacity() == 0) {
      if (prevP.getOpacity() != 1)       active.push(e);
 else       inactive.push(e);
    }
  }
);
  thumbAnim=new Anim(millis(500),thumb_root::setOpacity);
  thumb_root.visibleProperty().bind(thumb_root.opacityProperty().isNotEqualTo(0));
  thumb_root.toFront();
  setAnchors(thumb_root,0d);
  root.heightProperty().addListener((o,ov,nv) -> setBottomAnchor(thumb_root,nv.doubleValue() * 0.3));
  root.setOnMouseClicked(e -> {
    if (e.getButton() == SECONDARY && showThumbnails.getValue()) {
      showThumbnails.setCycledNapplyValue();
      e.consume();
    }
    if (e.getButton() == PRIMARY) {
      if (e.getY() > 0.8 * root.getHeight() && e.getX() > 0.7 * root.getWidth()) {
        theater_mode.setCycledNapplyValue();
      }
 else {
        showThumbnails.setCycledNapplyValue();
      }
      e.consume();
    }
  }
);
  thumb_root.setOnMouseClicked(e -> {
    showThumbnails.setCycledNapplyValue();
    e.consume();
  }
);
  root.addEventFilter(MOUSE_ENTERED,e -> {
    if (slideshow_on.getValue())     slideshow.pause();
  }
);
  root.addEventFilter(MOUSE_EXITED,e -> {
    if (slideshow_on.getValue())     slideshow.unpause();
  }
);
  ChangeListener<File> locationChange=(o,ov,nv) -> readThumbnails();
  folder.addListener(locationChange);
  d(() -> folder.removeListener(locationChange));
  root.setOnDragOver(DragUtil.audioDragAccepthandler);
  root.setOnDragOver(DragUtil.imgFileDragAccepthandler);
  root.setOnDragOver(DragUtil.fileDragAccepthandler);
  root.setOnDragDropped(e -> {
    if (e.getDragboard().hasFiles()) {
      dataChanged(e.getDragboard().getFiles().get(0));
      e.setDropCompleted(true);
      e.consume();
      return;
    }
    if (e.getGestureSource().equals(mainImage.getPane()))     return;
    if (DragUtil.hasAudio(e.getDragboard())) {
      List<Item> items=DragUtil.getAudioItems(e);
      if (!items.isEmpty())       dataChanged(items.get(0));
      e.setDropCompleted(true);
      e.consume();
    }
 else     if (DragUtil.hasImage(e.getDragboard())) {
      DragUtil.getImages(e).use(this::showImages,FX).showProgress(App.getWindow().taskAdd()).run();
      e.setDropCompleted(true);
      e.consume();
    }
  }
);
  installDragSignalPane(root,DETAILS,"String_Node_Str",DragUtil::hasImage);
  thumb_root.setOnScroll(Event::consume);
}