Skip to content

Commit 580a4a2

Browse files
committed
some changes to improve usability
1 parent d648013 commit 580a4a2

6 files changed

Lines changed: 49 additions & 23 deletions

File tree

src/main/java/com/ss/editor/Editor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static com.ss.rlib.util.ObjectUtils.notNull;
55
import static com.ss.rlib.util.Utils.run;
66
import static java.nio.file.Files.createDirectories;
7+
import com.jme3.app.DebugKeysAppState;
78
import com.jme3.asset.AssetManager;
89
import com.jme3.asset.AssetNotFoundException;
910
import com.jme3.audio.AudioRenderer;
@@ -327,6 +328,7 @@ public void simpleInitApp() {
327328
}
328329

329330
createLightProbes();
331+
stateManager.detach(stateManager.getState(DebugKeysAppState.class));
330332

331333
new EditorThread(new ThreadGroup("JavaFX"), JFXApplication::start, "JavaFX Launch").start();
332334
}

src/main/java/com/ss/editor/state/editor/impl/AdvancedAbstractEditor3DState.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,6 @@ protected boolean isShiftDown() {
744744
*/
745745
protected void setShiftDown(final boolean shiftDown) {
746746
this.shiftDown = shiftDown;
747-
new Exception("Shift down" + shiftDown).printStackTrace();
748747
}
749748

750749
/**

src/main/java/com/ss/editor/ui/component/editor/impl/material/MaterialFileEditor.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@
5252
import javafx.scene.image.ImageView;
5353
import javafx.scene.input.DragEvent;
5454
import javafx.scene.input.KeyCode;
55+
import javafx.scene.input.MouseEvent;
56+
import javafx.scene.input.ScrollEvent;
5557
import javafx.scene.layout.BorderPane;
5658
import javafx.scene.layout.HBox;
5759
import javafx.scene.layout.Pane;
@@ -246,12 +248,8 @@ protected void processChangedFile(@NotNull final FileChangedEvent event) {
246248
final Path file = event.getFile();
247249

248250
EXECUTOR_MANAGER.addJMETask(() -> {
249-
250251
final Material newMaterial = updateMaterialIdNeed(file, currentMaterial);
251-
252-
if (newMaterial == null) {
253-
EXECUTOR_MANAGER.addFXTask(() -> reload(currentMaterial));
254-
} else {
252+
if (newMaterial != null) {
255253
EXECUTOR_MANAGER.addFXTask(() -> reload(newMaterial));
256254
}
257255
});
@@ -487,9 +485,13 @@ private Pane getEditorAreaPane() {
487485
@Override
488486
@FXThread
489487
public boolean isInside(final double sceneX, final double sceneY, @NotNull final Class<? extends Event> eventType) {
490-
final Pane editorAreaPane = getEditorAreaPane();
491-
final Point2D point2D = editorAreaPane.sceneToLocal(sceneX, sceneY);
492-
return editorAreaPane.contains(point2D);
488+
489+
final Pane page = eventType.isAssignableFrom(MouseEvent.class) ||
490+
eventType.isAssignableFrom(ScrollEvent.class) ?
491+
getEditorAreaPane() : getPage();
492+
493+
final Point2D point2D = page.sceneToLocal(sceneX, sceneY);
494+
return page.contains(point2D);
493495
}
494496

495497
/**

src/main/java/com/ss/editor/ui/component/editor/impl/scene/AbstractSceneFileEditor.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,7 @@
8585
import javafx.geometry.Point2D;
8686
import javafx.scene.control.*;
8787
import javafx.scene.image.ImageView;
88-
import javafx.scene.input.DragEvent;
89-
import javafx.scene.input.KeyCode;
90-
import javafx.scene.input.KeyEvent;
91-
import javafx.scene.input.MouseEvent;
88+
import javafx.scene.input.*;
9289
import javafx.scene.layout.*;
9390
import org.jetbrains.annotations.NotNull;
9491
import org.jetbrains.annotations.Nullable;
@@ -962,9 +959,12 @@ private Pane getEditorAreaPane() {
962959
@FXThread
963960
public boolean isInside(final double sceneX, final double sceneY, @NotNull final Class<? extends Event> eventType) {
964961

965-
final Pane editorAreaPane = getEditorAreaPane();
966-
final Point2D point2D = editorAreaPane.sceneToLocal(sceneX, sceneY);
967-
final boolean result = editorAreaPane.contains(point2D);
962+
final Pane page = eventType.isAssignableFrom(MouseEvent.class) ||
963+
eventType.isAssignableFrom(ScrollEvent.class) ?
964+
getEditorAreaPane() : getPage();
965+
966+
final Point2D point2D = page.sceneToLocal(sceneX, sceneY);
967+
final boolean result = page.contains(point2D);
968968

969969
if (LOGGER.isEnabledDebug()) {
970970
if (Config.DEV_DEBUG_JFX_KEY_INPUT && eventType.isAssignableFrom(KeyEvent.class)) {

src/main/java/com/ss/editor/ui/scene/EditorFXScene.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static com.ss.rlib.util.ClassUtils.unsafeCast;
55
import com.jme3x.jfx.injfx.input.JFXMouseInput;
66
import com.ss.editor.annotation.FXThread;
7+
import com.ss.editor.manager.ExecutorManager;
78
import com.ss.editor.manager.PluginManager;
89
import com.ss.editor.ui.component.ScreenComponent;
910
import com.ss.editor.ui.css.CSSIds;
@@ -32,6 +33,9 @@
3233
*/
3334
public class EditorFXScene extends Scene {
3435

36+
@NotNull
37+
private static final ExecutorManager EXECUTOR_MANAGER = ExecutorManager.getInstance();
38+
3539
/**
3640
* The list of components.
3741
*/
@@ -74,6 +78,12 @@ public class EditorFXScene extends Scene {
7478
@Nullable
7579
private ProgressIndicator progressIndicator;
7680

81+
/**
82+
* Focused node.
83+
*/
84+
@Nullable
85+
private Node focused;
86+
7787
/**
7888
* Instantiates a new Editor fx scene.
7989
*
@@ -221,6 +231,7 @@ public synchronized void decrementLoading() {
221231
*/
222232
@FXThread
223233
private void showLoading() {
234+
focused = getFocusOwner();
224235

225236
final VBox loadingLayer = getLoadingLayer();
226237
loadingLayer.setVisible(true);
@@ -249,6 +260,13 @@ private void hideLoading() {
249260

250261
final StackPane container = getContainer();
251262
container.setDisable(false);
263+
264+
if (focused != null) {
265+
EXECUTOR_MANAGER.addFXTask(() -> {
266+
focused.requestFocus();
267+
focused = null;
268+
});
269+
}
252270
}
253271

254272
/**

src/main/java/com/ss/editor/ui/util/UIUtils.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import javafx.beans.value.ChangeListener;
2121
import javafx.collections.ObservableList;
2222
import javafx.css.PseudoClass;
23+
import javafx.event.EventTarget;
2324
import javafx.geometry.Pos;
2425
import javafx.scene.Node;
2526
import javafx.scene.Parent;
@@ -486,16 +487,20 @@ public static Color from(@Nullable final ColorRGBA color) {
486487
*/
487488
@FXThread
488489
public static void consumeIfIsNotHotKey(@Nullable final KeyEvent event) {
489-
if (event == null) {
490-
return;
491-
} else if (event.isControlDown()) {
490+
if (event == null) return;
492491

493-
final KeyCode code = event.getCode();
492+
final String text = event.getText();
493+
if (text.isEmpty()) return;
494494

495-
if (!(code == KeyCode.Z || code == KeyCode.Y)) {
496-
return;
497-
}
495+
final KeyCode code = event.getCode();
496+
final EventTarget target = event.getTarget();
498497

498+
if (code == KeyCode.TAB && !(target instanceof TextInputControl)) {
499+
return;
500+
}
501+
502+
if (event.isControlDown()) {
503+
return;
499504
} else if (event.isShiftDown()) {
500505
return;
501506
}

0 commit comments

Comments
 (0)