From 787bf93dbdae80238da9abb8ee1e0c8b2782bef5 Mon Sep 17 00:00:00 2001 From: Anna Clemens Date: Sat, 6 Feb 2021 14:58:34 -0500 Subject: [PATCH] feat: persist window location between launches --- XIVChat Desktop/Configuration.cs | 3 +++ XIVChat Desktop/MainWindow.xaml | 2 ++ XIVChat Desktop/MainWindow.xaml.cs | 10 ++++++++++ XIVChat Desktop/XIVChat Desktop.csproj | 1 + 4 files changed, 16 insertions(+) diff --git a/XIVChat Desktop/Configuration.cs b/XIVChat Desktop/Configuration.cs index 2e1a3d2..b4ff97b 100644 --- a/XIVChat Desktop/Configuration.cs +++ b/XIVChat Desktop/Configuration.cs @@ -11,6 +11,7 @@ using System.IO; using System.Linq; using System.Text.RegularExpressions; using Newtonsoft.Json.Linq; +using WpfWindowPlacement; using XIVChatCommon.Message; using XIVChatCommon.Message.Server; @@ -46,6 +47,8 @@ namespace XIVChat_Desktop { public ObservableCollection Notifications { get; set; } = new ObservableCollection(); + public WindowPlacement WindowPlacement { get; set; } + #region io private static readonly JsonSerializerSettings Settings = new JsonSerializerSettings { diff --git a/XIVChat Desktop/MainWindow.xaml b/XIVChat Desktop/MainWindow.xaml index 806f8e5..ab1074f 100644 --- a/XIVChat Desktop/MainWindow.xaml +++ b/XIVChat Desktop/MainWindow.xaml @@ -19,6 +19,8 @@ AllowsTransparency="True" Opacity="{Binding App.Config.Opacity}" Icon="/Resources/logo.ico" + SourceInitialized="MainWindow_OnSourceInitialized" + Closing="MainWindow_OnClosing" d:DataContext="{d:DesignInstance local:MainWindow}"> diff --git a/XIVChat Desktop/MainWindow.xaml.cs b/XIVChat Desktop/MainWindow.xaml.cs index 29650c5..53d5bbf 100644 --- a/XIVChat Desktop/MainWindow.xaml.cs +++ b/XIVChat Desktop/MainWindow.xaml.cs @@ -8,6 +8,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; +using WpfWindowPlacement; using XIVChatCommon.Message; using XIVChatCommon.Message.Server; @@ -403,5 +404,14 @@ namespace XIVChat_Desktop { channel.ContextMenu!.PlacementTarget = channel; channel.ContextMenu!.IsOpen = true; } + + private void MainWindow_OnSourceInitialized(object? sender, EventArgs e) { + this.SetPlacement(this.App.Config.WindowPlacement); + } + + private void MainWindow_OnClosing(object sender, CancelEventArgs e) { + this.App.Config.WindowPlacement = this.GetPlacement(); + this.App.Config.Save(); + } } } diff --git a/XIVChat Desktop/XIVChat Desktop.csproj b/XIVChat Desktop/XIVChat Desktop.csproj index 3b3e2cf..3ec5e00 100644 --- a/XIVChat Desktop/XIVChat Desktop.csproj +++ b/XIVChat Desktop/XIVChat Desktop.csproj @@ -66,6 +66,7 @@ +