diff --git a/chunky/src/java/se/llbit/chunky/entity/Poseable.java b/chunky/src/java/se/llbit/chunky/entity/Poseable.java
index 090bbbe52..058af65de 100644
--- a/chunky/src/java/se/llbit/chunky/entity/Poseable.java
+++ b/chunky/src/java/se/llbit/chunky/entity/Poseable.java
@@ -50,9 +50,9 @@ default void lookAt(Vector3 target) {
dir.sub(face);
dir.normalize();
double headYaw = getPose("head").y;
- getPose().set("rotation", Json.of(FastMath.atan2(dir.x, dir.z) + Math.PI - headYaw));
double pitch = Math.asin(dir.y);
- getPose().add("head", JsonUtil.vec3ToJson(new Vector3(pitch, headYaw, 0)));
+ getPose().set("head", JsonUtil.vec3ToJson(new Vector3(pitch, 0, 0)));
+ getPose().set("all", JsonUtil.vec3ToJson(new Vector3(0, FastMath.atan2(dir.x, dir.z) + Math.PI - headYaw, 0)));
}
diff --git a/chunky/src/java/se/llbit/chunky/ui/RenderCanvasFx.java b/chunky/src/java/se/llbit/chunky/ui/RenderCanvasFx.java
index d3e07e8ee..f552e96cb 100644
--- a/chunky/src/java/se/llbit/chunky/ui/RenderCanvasFx.java
+++ b/chunky/src/java/se/llbit/chunky/ui/RenderCanvasFx.java
@@ -440,6 +440,10 @@ public void setRenderListener(RenderStatusListener renderListener) {
@Override public void sceneStatus(String status) {
Platform.runLater(() -> {
+ if (!getScene().getWindow().isFocused()) {
+ return;
+ }
+
Point2D offset = localToScene(0, 0);
tooltip.setText(status);
tooltip.show(this,
diff --git a/chunky/src/java/se/llbit/chunky/ui/controller/SceneChooserController.java b/chunky/src/java/se/llbit/chunky/ui/controller/SceneChooserController.java
index dc449f1c2..534926aea 100644
--- a/chunky/src/java/se/llbit/chunky/ui/controller/SceneChooserController.java
+++ b/chunky/src/java/se/llbit/chunky/ui/controller/SceneChooserController.java
@@ -113,10 +113,13 @@ public class SceneChooserController implements Initializable {
new Tooltip("Open the directory where Chunky stores scene descriptions and renders."));
openSceneDirBtn.setOnAction(e -> controller.openDirectory(controller.getChunky().options.sceneDir));
- DirectoryChooser sceneDirectoryChooser = new DirectoryChooser();
- sceneDirectoryChooser.setTitle("Select directory for scene storage");
changeSceneDirBtn.setOnAction(e -> {
- sceneDirectoryChooser.setInitialDirectory(controller.getChunky().options.sceneDir);
+ DirectoryChooser sceneDirectoryChooser = new DirectoryChooser();
+ sceneDirectoryChooser.setTitle("Select directory for scene storage");
+ File sceneDirectory = controller.getChunky().options.sceneDir;
+ if (sceneDirectory.isDirectory()) {
+ sceneDirectoryChooser.setInitialDirectory(sceneDirectory);
+ }
File directory = sceneDirectoryChooser.showDialog(changeSceneDirBtn.getScene().getWindow());
if(directory != null && directory.canWrite()) {
PersistentSettings.setSceneDirectory(directory);
diff --git a/chunky/src/res/se/llbit/chunky/ui/Chunky.fxml b/chunky/src/res/se/llbit/chunky/ui/Chunky.fxml
index 18e94ce37..c81b6a62f 100644
--- a/chunky/src/res/se/llbit/chunky/ui/Chunky.fxml
+++ b/chunky/src/res/se/llbit/chunky/ui/Chunky.fxml
@@ -67,7 +67,7 @@
-
+