NSF: UI - Fixed usability issues with the track dropdown when a scrollbar is present
This commit is contained in:
parent
241b09964b
commit
caa8a6ac25
1 changed files with 13 additions and 6 deletions
|
@ -22,6 +22,7 @@ namespace Mesen.GUI.Controls
|
||||||
private float _xFactor = 1;
|
private float _xFactor = 1;
|
||||||
private float _yFactor = 1;
|
private float _yFactor = 1;
|
||||||
private bool _isNsf = false;
|
private bool _isNsf = false;
|
||||||
|
private int _selectedTrack = 0;
|
||||||
|
|
||||||
public ctrlNsfPlayer()
|
public ctrlNsfPlayer()
|
||||||
{
|
{
|
||||||
|
@ -161,10 +162,13 @@ namespace Mesen.GUI.Controls
|
||||||
NsfHeader header = InteropEmu.NsfGetHeader();
|
NsfHeader header = InteropEmu.NsfGetHeader();
|
||||||
int currentTrack = InteropEmu.NsfGetCurrentTrack();
|
int currentTrack = InteropEmu.NsfGetCurrentTrack();
|
||||||
|
|
||||||
if(currentTrack != cboTrack.SelectedIndex) {
|
if(_selectedTrack != currentTrack) {
|
||||||
cboTrack.SelectedIndexChanged -= cboTrack_SelectedIndexChanged;
|
if(!_disableShortcutKeys) {
|
||||||
cboTrack.SelectedIndex = currentTrack;
|
cboTrack.SelectedIndexChanged -= cboTrack_SelectedIndexChanged;
|
||||||
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));
|
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();
|
NsfHeader header = InteropEmu.NsfGetHeader();
|
||||||
int currentTrack = InteropEmu.NsfGetCurrentTrack();
|
|
||||||
|
|
||||||
string[] trackNames = header.GetTrackNames();
|
string[] trackNames = header.GetTrackNames();
|
||||||
|
|
||||||
|
@ -237,7 +240,10 @@ namespace Mesen.GUI.Controls
|
||||||
cboTrack.DataSource = _trackList;
|
cboTrack.DataSource = _trackList;
|
||||||
cboTrack.DisplayMember = "Value";
|
cboTrack.DisplayMember = "Value";
|
||||||
}
|
}
|
||||||
cboTrack.SelectedIndex = currentTrack;
|
int currentTrack = InteropEmu.NsfGetCurrentTrack();
|
||||||
|
if(cboTrack.SelectedIndex != currentTrack) {
|
||||||
|
cboTrack.SelectedIndex = currentTrack;
|
||||||
|
}
|
||||||
lblTrackTotal.Text = "/ " + header.TotalSongs.ToString();
|
lblTrackTotal.Text = "/ " + header.TotalSongs.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,6 +449,7 @@ namespace Mesen.GUI.Controls
|
||||||
{
|
{
|
||||||
int currentTrack = InteropEmu.NsfGetCurrentTrack();
|
int currentTrack = InteropEmu.NsfGetCurrentTrack();
|
||||||
if(currentTrack != cboTrack.SelectedIndex) {
|
if(currentTrack != cboTrack.SelectedIndex) {
|
||||||
|
_selectedTrack = currentTrack;
|
||||||
InteropEmu.NsfSelectTrack((byte)cboTrack.SelectedIndex);
|
InteropEmu.NsfSelectTrack((byte)cboTrack.SelectedIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue