diff options
author | Christoph Caks | 2016-08-25 11:43:42 +0000 |
---|---|---|
committer | Christoph Caks | 2016-08-25 13:27:15 +0000 |
commit | 7da06203c15df3e4af88f7851d9310a39e3ee924 (patch) | |
tree | df8442480833ab7880f18e1d930f94d4f7b2d536 | |
parent | cb607f1bd5bd04bd762c8b5970709eee435cdfb0 (diff) | |
download | org.eclipse.efxclipse-7da06203c15df3e4af88f7851d9310a39e3ee924.tar.gz org.eclipse.efxclipse-7da06203c15df3e4af88f7851d9310a39e3ee924.tar.xz org.eclipse.efxclipse-7da06203c15df3e4af88f7851d9310a39e3ee924.zip |
refs #5: fixed hover window for windows
-rw-r--r-- | bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/hover/internal/DefaultHoverWindowPresenter.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/hover/internal/DefaultHoverWindowPresenter.java b/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/hover/internal/DefaultHoverWindowPresenter.java index c2f147c20..8db409b2a 100644 --- a/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/hover/internal/DefaultHoverWindowPresenter.java +++ b/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/hover/internal/DefaultHoverWindowPresenter.java @@ -39,11 +39,14 @@ public class DefaultHoverWindowPresenter implements HoverWindowPresenter { private final VBox root; private List<HoverInfo> currentVisible; + + private boolean preventHide = false; private AtomicReference<Boolean> currentScheduledHide = new AtomicReference<>(true); private void scheduleHide(long delay) { this.currentScheduledHide.set(true); Timeline t = new Timeline(new KeyFrame(Duration.millis(delay), (a) -> { + if (preventHide) return; if (this.currentScheduledHide.get()) { DefaultHoverWindowPresenter.this.popup.hide(); } @@ -82,11 +85,16 @@ public class DefaultHoverWindowPresenter implements HoverWindowPresenter { this.root.setOnMouseEntered(this::onMouseEntered); + this.root.setOnMouseExited(this::onMouseExited); } private void onMouseEntered(MouseEvent event) { cancelScheduledHide(); + preventHide = true; + } + private void onMouseExited(MouseEvent event) { + preventHide = false; } private void onShowing(WindowEvent event) { @@ -211,7 +219,7 @@ public class DefaultHoverWindowPresenter implements HoverWindowPresenter { @Override public void hide() { - scheduleHide(500); + scheduleHide(300); } public void setHoverPresenter(List<HoverPresenter> hoverPresenters) { |