Automatically hide main settings window when sensor is repositioned.

master
LeapwardKoex 2024-11-09 11:24:09 +13:00
parent 2033b5e145
commit a0cfa9c0c6
3 changed files with 15 additions and 9 deletions

View File

@ -34,7 +34,7 @@ internal class MaiTouchComConnector(MaiTouchSensorButtonStateManager buttonState
internal set;
}
public async Task StartTouchSensorPolling()
public void StartTouchSensorPolling()
{
if (!_connected && _shouldReconnect)
{

View File

@ -68,8 +68,8 @@ public partial class MainWindow : Window
_touchPanel = new TouchPanel();
_touchPanel.onTouch = (value) => { buttonState.PressButton(value); };
_touchPanel.onRelease = (value) => { buttonState.ReleaseButton(value); };
_touchPanel.onInitialReposition = () => { WindowState = WindowState.Minimized; };
_touchPanel.Show();
_touchPanel.Owner = this;
var dataContext = (MainWindowViewModel)DataContext;
_touchPanel.DataContext = dataContext;
@ -90,12 +90,10 @@ public partial class MainWindow : Window
{
e.Cancel = true;
await connector.Disconnect();
foreach (Window childWindow in OwnedWindows)
{
childWindow.Close();
}
_touchPanel.Close();
Closing -= MainWindow_Closing;
e.Cancel = false;
Application.Current.Shutdown();
}
private async void ExitWithSinmaiLoop()
@ -168,16 +166,16 @@ public partial class MainWindow : Window
{
if (dataContext.IsAutomaticPortConnectingEnabled)
{
await connector.StartTouchSensorPolling();
connector.StartTouchSensorPolling();
}
await Task.Delay(1000);
}
}
private async void ConnectToPortButton_Click(object sender, RoutedEventArgs e)
private void ConnectToPortButton_Click(object sender, RoutedEventArgs e)
{
await connector.StartTouchSensorPolling();
connector.StartTouchSensorPolling();
}
private void debugMode_Click(object sender, RoutedEventArgs e)

View File

@ -12,12 +12,14 @@ public partial class TouchPanel : Window
{
internal Action<TouchValue>? onTouch;
internal Action<TouchValue>? onRelease;
internal Action? onInitialReposition;
private readonly Dictionary<int, Polygon> activeTouches = [];
private readonly TouchPanelPositionManager _positionManager;
private List<Polygon> buttons = [];
private bool isDebugEnabled = Properties.Settings.Default.IsDebugEnabled;
private bool isRingButtonEmulationEnabled = Properties.Settings.Default.IsRingButtonEmulationEnabled;
private bool hasRepositioned = false;
private enum ResizeDirection
{
@ -75,6 +77,12 @@ public partial class TouchPanel : Window
Left = position.Value.Left;
Width = position.Value.Width;
Height = position.Value.Height;
if (!hasRepositioned)
{
hasRepositioned = true;
onInitialReposition?.Invoke();
}
}
}