diff --git a/DD2Switcher/SettingsForm.cs b/DD2Switcher/SettingsForm.cs index 6697465..368be5b 100644 --- a/DD2Switcher/SettingsForm.cs +++ b/DD2Switcher/SettingsForm.cs @@ -83,8 +83,37 @@ namespace DD2Switcher { windowPanelForm.IsLast = (i == lastIndex); windowPanelForm.UpdateDisplay(); - windowPanelForm.PickClicked += (sender, index) => PickButton_Click(sender, new EventArgs()); - windowPanelForm.UntrackClicked += (sender, index) => UntrackButton_Click(sender, new EventArgs()); + windowPanelForm.PickClicked += (sender, index) => { + if (firstIndex == -1) { + // First pick - set both first and last + firstIndex = index; + lastIndex = index; + } else if (lastIndex == -1) { + // Second pick - set last + lastIndex = index; + } else { + // Subsequent picks - determine which becomes first + if (index < firstIndex) { + // New index is lower, so it becomes first + lastIndex = firstIndex; + firstIndex = index; + } else { + // New index is higher, so it becomes last + lastIndex = index; + } + } + RefreshWindowsList(); + }; + windowPanelForm.UntrackClicked += (sender, index) => { + UntrackWindow(index); + if (index == firstIndex) { + firstIndex = -1; + } + if (index == lastIndex) { + lastIndex = -1; + } + RefreshWindowsList(); + }; windowsPanel.Controls.Add(windowPanelForm); } @@ -101,50 +130,6 @@ namespace DD2Switcher { return ""; } - private void PickButton_Click(object sender, EventArgs e) { - var button = (Button)sender; - int index = (int)button.Tag; - - if (firstIndex == -1) { - // First pick - set both first and last - firstIndex = index; - lastIndex = index; - } else if (lastIndex == -1) { - // Second pick - set last - lastIndex = index; - } else { - // Subsequent picks - determine which becomes first - if (index < firstIndex) { - // New index is lower, so it becomes first - lastIndex = firstIndex; - firstIndex = index; - } else { - // New index is higher, so it becomes last - lastIndex = index; - } - } - - RefreshWindowsList(); - } - - private void UntrackButton_Click(object sender, EventArgs e) { - var button = (Button)sender; - int index = (int)button.Tag; - - // Remove from tracked windows - UntrackWindow(index); - - // Update first/last indices if needed - if (index == firstIndex) { - firstIndex = -1; - } - if (index == lastIndex) { - lastIndex = -1; - } - - RefreshWindowsList(); - } - private List GetTrackedWindows() { var windows = Program.GetTrackedWindows(); return windows.ToList();