NSF: UI - Fixed usability issues with the track dropdown when a scrollbar is present

This commit is contained in:
Sour 2020-04-19 16:58:27 -04:00
parent 241b09964b
commit caa8a6ac25

View file

@ -22,6 +22,7 @@ namespace Mesen.GUI.Controls
private float _xFactor = 1;
private float _yFactor = 1;
private bool _isNsf = false;
private int _selectedTrack = 0;
public ctrlNsfPlayer()
{
@ -161,10 +162,13 @@ namespace Mesen.GUI.Controls
NsfHeader header = InteropEmu.NsfGetHeader();
int currentTrack = InteropEmu.NsfGetCurrentTrack();
if(currentTrack != cboTrack.SelectedIndex) {
cboTrack.SelectedIndexChanged -= cboTrack_SelectedIndexChanged;
cboTrack.SelectedIndex = currentTrack;
cboTrack.SelectedIndexChanged += cboTrack_SelectedIndexChanged;
if(_selectedTrack != currentTrack) {
if(!_disableShortcutKeys) {
cboTrack.SelectedIndexChanged -= cboTrack_SelectedIndexChanged;
cboTrack.SelectedIndex = currentTrack;
cboTrack.SelectedIndexChanged += cboTrack_SelectedIndexChanged;
}
_selectedTrack = currentTrack;
}
TimeSpan time = TimeSpan.FromSeconds((double)elapsedFrames / ((header.Flags & 0x01) == 0x01 ? 50.006978 : 60.098812));
@ -217,7 +221,6 @@ namespace Mesen.GUI.Controls
}
NsfHeader header = InteropEmu.NsfGetHeader();
int currentTrack = InteropEmu.NsfGetCurrentTrack();
string[] trackNames = header.GetTrackNames();
@ -237,7 +240,10 @@ namespace Mesen.GUI.Controls
cboTrack.DataSource = _trackList;
cboTrack.DisplayMember = "Value";
}
cboTrack.SelectedIndex = currentTrack;
int currentTrack = InteropEmu.NsfGetCurrentTrack();
if(cboTrack.SelectedIndex != currentTrack) {
cboTrack.SelectedIndex = currentTrack;
}
lblTrackTotal.Text = "/ " + header.TotalSongs.ToString();
}
@ -443,6 +449,7 @@ namespace Mesen.GUI.Controls
{
int currentTrack = InteropEmu.NsfGetCurrentTrack();
if(currentTrack != cboTrack.SelectedIndex) {
_selectedTrack = currentTrack;
InteropEmu.NsfSelectTrack((byte)cboTrack.SelectedIndex);
}
}