Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8097281

[CSS] SplitPane's CSS crops scrollbars of inner controls under certain circumstances (regression)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • 8u20
    • 8
    • javafx

      In JavaFX 2.2 I wanted to get rid of the SplitPane's border. I did so with removing the first background:

      .split-pane {
          -fx-background-color: -fx-control-inner-background;
          -fx-background-insets: 0;
          -fx-padding: 0;
      }

      which worked fine.

      Now, in Java 8, I noticed, that the scrollbars of an inner ListView is cropped by 1px.

      I could workaround with:

      .split-pane > * > .list-view {
          -fx-background-color: -fx-background;
          -fx-background-insets: 0;
          -fx-padding: 1;
      }

      but nonetheless, it feels like a very tiny regression and worth a bug report.
      (probably also affects other srcollable controls).

      I think it only affects Caspian style.

      Run this with Java 8 and then with Java 7 to see the difference:

      import javafx.application.Application;
      import javafx.collections.FXCollections;
      import javafx.geometry.Insets;
      import javafx.geometry.Orientation;
      import javafx.scene.Scene;
      import javafx.scene.control.ListView;
      import javafx.scene.control.SplitPane;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;


      public class TestApp4 extends Application {
          public static void main(String[] args) throws Exception {
              launch(args);
          }


          public void start(final Stage stage) throws Exception {

              Application.setUserAgentStylesheet(STYLESHEET_CASPIAN);

              ListView<String> listView = new ListView<String>();
              listView.setItems(FXCollections.observableArrayList(".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "."));

              SplitPane splitPane = new SplitPane();
              splitPane.setOrientation(Orientation.VERTICAL);
              splitPane.getItems().addAll(listView);

              VBox vBox = new VBox();
              vBox.getChildren().addAll(splitPane);
              vBox.setPadding(new Insets(20, 20, 20, 20));
              Scene scene = new Scene(vBox);
              stage.setScene(scene);
              scene.getStylesheets().add("styles.css");
              stage.show();
          }
      }

            dgrieve David Grieve
            cschudtjfx Christian Schudt (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: