mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +01:00
Fix flickering of json popup, add esc handler
- popup was visible shortly in wrong position - pressing escape did not close popup
This commit is contained in:
parent
4cdbc816ce
commit
7c2d10066f
2 changed files with 28 additions and 0 deletions
|
@ -32,6 +32,8 @@ import bisq.core.payment.payload.PaymentMethod;
|
|||
import bisq.core.trade.Contract;
|
||||
import bisq.core.util.BSFormatter;
|
||||
|
||||
import bisq.common.UserThread;
|
||||
|
||||
import org.bitcoinj.core.Utils;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
@ -48,6 +50,7 @@ import javafx.scene.control.Button;
|
|||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.Tooltip;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.layout.GridPane;
|
||||
|
||||
import javafx.geometry.Insets;
|
||||
|
@ -215,12 +218,23 @@ public class ContractWindow extends Overlay<ContractWindow> {
|
|||
viewContractStage.initOwner(rootScene.getWindow());
|
||||
viewContractStage.initModality(Modality.NONE);
|
||||
viewContractStage.initStyle(StageStyle.UTILITY);
|
||||
viewContractStage.setOpacity(0);
|
||||
viewContractStage.show();
|
||||
|
||||
Window window = rootScene.getWindow();
|
||||
double titleBarHeight = window.getHeight() - rootScene.getHeight();
|
||||
viewContractStage.setX(Math.round(window.getX() + (owner.getWidth() - viewContractStage.getWidth()) / 2) + 200);
|
||||
viewContractStage.setY(Math.round(window.getY() + titleBarHeight + (owner.getHeight() - viewContractStage.getHeight()) / 2) + 50);
|
||||
// Delay display to next render frame to avoid that the popup is first quickly displayed in default position
|
||||
// and after a short moment in the correct position
|
||||
UserThread.execute(() -> viewContractStage.setOpacity(1));
|
||||
|
||||
viewContractScene.setOnKeyPressed(ev -> {
|
||||
if (ev.getCode() == KeyCode.ESCAPE) {
|
||||
ev.consume();
|
||||
viewContractStage.hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Button closeButton = addButtonAfterGroup(gridPane, ++rowIndex, Res.get("shared.close"));
|
||||
|
|
|
@ -32,6 +32,8 @@ import bisq.core.trade.Trade;
|
|||
import bisq.core.trade.TradeManager;
|
||||
import bisq.core.util.BSFormatter;
|
||||
|
||||
import bisq.common.UserThread;
|
||||
|
||||
import org.bitcoinj.core.Utils;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
@ -45,6 +47,7 @@ import javafx.scene.Scene;
|
|||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.Tooltip;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.layout.GridPane;
|
||||
|
||||
import javafx.geometry.Insets;
|
||||
|
@ -269,12 +272,23 @@ public class TradeDetailsWindow extends Overlay<TradeDetailsWindow> {
|
|||
viewContractStage.initOwner(rootScene.getWindow());
|
||||
viewContractStage.initModality(Modality.NONE);
|
||||
viewContractStage.initStyle(StageStyle.UTILITY);
|
||||
viewContractStage.setOpacity(0);
|
||||
viewContractStage.show();
|
||||
|
||||
Window window = rootScene.getWindow();
|
||||
double titleBarHeight = window.getHeight() - rootScene.getHeight();
|
||||
viewContractStage.setX(Math.round(window.getX() + (owner.getWidth() - viewContractStage.getWidth()) / 2) + 200);
|
||||
viewContractStage.setY(Math.round(window.getY() + titleBarHeight + (owner.getHeight() - viewContractStage.getHeight()) / 2) + 50);
|
||||
// Delay display to next render frame to avoid that the popup is first quickly displayed in default position
|
||||
// and after a short moment in the correct position
|
||||
UserThread.execute(() -> viewContractStage.setOpacity(1));
|
||||
|
||||
viewContractScene.setOnKeyPressed(ev -> {
|
||||
if (ev.getCode() == KeyCode.ESCAPE) {
|
||||
ev.consume();
|
||||
viewContractStage.hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue