|
@@ -1,6 +1,7 @@
|
|
|
package org.cryptomator.ui.mainwindow;
|
|
|
|
|
|
import dagger.Binds;
|
|
|
+import dagger.Lazy;
|
|
|
import dagger.Module;
|
|
|
import dagger.Provides;
|
|
|
import dagger.multibindings.IntoMap;
|
|
@@ -14,9 +15,11 @@ import org.cryptomator.ui.common.FxmlScene;
|
|
|
import org.cryptomator.ui.common.StageFactory;
|
|
|
import org.cryptomator.ui.common.StageInitializer;
|
|
|
import org.cryptomator.ui.error.ErrorComponent;
|
|
|
+import org.cryptomator.ui.fxapp.FxApplicationTerminator;
|
|
|
import org.cryptomator.ui.fxapp.PrimaryStage;
|
|
|
import org.cryptomator.ui.migration.MigrationComponent;
|
|
|
import org.cryptomator.ui.stats.VaultStatisticsComponent;
|
|
|
+import org.cryptomator.ui.traymenu.TrayMenuComponent;
|
|
|
import org.cryptomator.ui.wrongfilealert.WrongFileAlertComponent;
|
|
|
|
|
|
import javax.inject.Named;
|
|
@@ -35,11 +38,19 @@ abstract class MainWindowModule {
|
|
|
@Provides
|
|
|
@MainWindow
|
|
|
@MainWindowScoped
|
|
|
- static Stage provideMainWindow(@PrimaryStage Stage stage, StageInitializer initializer) {
|
|
|
+ static Stage provideMainWindow(@PrimaryStage Stage stage, StageInitializer initializer, FxApplicationTerminator terminator, Lazy<TrayMenuComponent> trayMenu) {
|
|
|
initializer.accept(stage);
|
|
|
stage.setTitle("Cryptomator");
|
|
|
stage.setMinWidth(650);
|
|
|
stage.setMinHeight(498);
|
|
|
+ stage.setOnCloseRequest(e -> {
|
|
|
+ if (!trayMenu.get().isInitialized()) {
|
|
|
+ terminator.terminate();
|
|
|
+ e.consume();
|
|
|
+ } else {
|
|
|
+ stage.close();
|
|
|
+ }
|
|
|
+ });
|
|
|
return stage;
|
|
|
}
|
|
|
|