summaryrefslogtreecommitdiff
path: root/windows/WinUI
diff options
context:
space:
mode:
authorGrant Limberg <grant.limberg@zerotier.com>2016-11-22 11:53:06 -0800
committerGrant Limberg <grant.limberg@zerotier.com>2016-11-22 11:53:06 -0800
commitadb7a888362b8e37d9dacb48edfa97e3803687ee (patch)
tree0df2a617b284f662e4e48c2ae3ba1fb357aefe0f /windows/WinUI
parent3a3a23db344fa580aa016464bc265843254c98e2 (diff)
downloadinfinitytier-adb7a888362b8e37d9dacb48edfa97e3803687ee.tar.gz
infinitytier-adb7a888362b8e37d9dacb48edfa97e3803687ee.zip
cache window positions so we only have to move after open once.
Diffstat (limited to 'windows/WinUI')
-rw-r--r--windows/WinUI/ToolbarItem.xaml4
-rw-r--r--windows/WinUI/ToolbarItem.xaml.cs82
2 files changed, 66 insertions, 20 deletions
diff --git a/windows/WinUI/ToolbarItem.xaml b/windows/WinUI/ToolbarItem.xaml
index 96cce920..471a1107 100644
--- a/windows/WinUI/ToolbarItem.xaml
+++ b/windows/WinUI/ToolbarItem.xaml
@@ -20,9 +20,7 @@
<Grid>
<tb:TaskbarIcon x:Name="MyNotifyIcon"
IconSource="ZeroTierIcon.ico"
- ToolTipText="ZeroTier One"
- TrayContextMenuOpen="ToolbarItem_TrayContextMenuOpen"
- PreviewTrayContextMenuOpen="ToolbarItem_PreviewTrayContextMenuOpen">
+ ToolTipText="ZeroTier One">
<tb:TaskbarIcon.ContextMenu>
<ContextMenu>
<ContextMenu.ItemsSource>
diff --git a/windows/WinUI/ToolbarItem.xaml.cs b/windows/WinUI/ToolbarItem.xaml.cs
index e8409de4..5e8dd9f5 100644
--- a/windows/WinUI/ToolbarItem.xaml.cs
+++ b/windows/WinUI/ToolbarItem.xaml.cs
@@ -29,6 +29,11 @@ namespace WinUI
{
private APIHandler handler = APIHandler.Instance;
+ private Point netListLocation = new Point(0, 0);
+ private Point joinNetLocation = new Point(0, 0);
+ private Point aboutViewLocation = new Point(0, 0);
+ private Point prefsViewLocation = new Point(0, 0);
+
private NetworkListView netListView = new NetworkListView();
private JoinNetworkView joinNetView = null;
private AboutView aboutView = null;
@@ -101,16 +106,6 @@ namespace WinUI
}
}
- private void ToolbarItem_TrayContextMenuOpen(object sender, System.Windows.RoutedEventArgs e)
- {
- Console.WriteLine("TrayContextMenuOpen");
- }
-
- private void ToolbarItem_PreviewTrayContextMenuOpen(object sender, System.Windows.RoutedEventArgs e)
- {
- Console.WriteLine("PreviewTrayContextMenuOpen");
- }
-
private void ToolbarItem_NodeIDClicked(object sender, System.Windows.RoutedEventArgs e)
{
Clipboard.SetText(nodeId);
@@ -123,10 +118,23 @@ namespace WinUI
netListView = new WinUI.NetworkListView();
netListView.Closed += ShowNetworksClosed;
}
+
+ bool netListNeedsMoving = true;
+ if (netListLocation.X > 0 && netListLocation.Y > 0)
+ {
+ netListView.Left = netListLocation.X;
+ netListView.Top = netListLocation.Y;
+ netListNeedsMoving = false;
+ }
netListView.Show();
- setWindowPosition(netListView);
+ if (netListNeedsMoving)
+ {
+ setWindowPosition(netListView);
+ netListLocation.X = netListView.Left;
+ netListLocation.Y = netListView.Top;
+ }
}
private void ShowNetworksClosed(object sender, System.EventArgs e)
@@ -140,10 +148,23 @@ namespace WinUI
{
joinNetView = new JoinNetworkView();
joinNetView.Closed += JoinNetworkClosed;
-
+
+ bool needsMove = true;
+ if (joinNetLocation.X > 0 && joinNetLocation.Y > 0)
+ {
+ joinNetView.Left = joinNetLocation.X;
+ joinNetView.Top = joinNetLocation.Y;
+ needsMove = false;
+ }
+
joinNetView.Show();
- setWindowPosition(joinNetView);
+ if (needsMove)
+ {
+ setWindowPosition(joinNetView);
+ joinNetLocation.X = joinNetView.Left;
+ joinNetLocation.Y = joinNetView.Top;
+ }
}
}
@@ -158,9 +179,23 @@ namespace WinUI
{
aboutView = new AboutView();
aboutView.Closed += AboutClosed;
-
+
+ bool needsMove = true;
+ if (aboutViewLocation.X > 0 && aboutViewLocation.Y > 0)
+ {
+ aboutView.Left = aboutViewLocation.X;
+ aboutView.Top = aboutViewLocation.Y;
+ needsMove = false;
+ }
+
aboutView.Show();
- setWindowPosition(aboutView);
+
+ if (needsMove)
+ {
+ setWindowPosition(aboutView);
+ aboutViewLocation.X = aboutView.Left;
+ aboutViewLocation.Y = aboutView.Top;
+ }
}
}
@@ -175,10 +210,23 @@ namespace WinUI
{
prefsView = new PreferencesView();
prefsView.Closed += PreferencesClosed;
-
+
+ bool needsMove = true;
+ if (prefsViewLocation.X > 0 && prefsViewLocation.Y > 0)
+ {
+ prefsView.Left = prefsViewLocation.X;
+ prefsView.Top = prefsViewLocation.Y;
+ needsMove = false;
+ }
+
prefsView.Show();
- setWindowPosition(prefsView);
+ if (needsMove)
+ {
+ setWindowPosition(prefsView);
+ prefsViewLocation.X = prefsView.Left;
+ prefsViewLocation.Y = prefsView.Top;
+ }
}
}