Fix potential multiple opening of same sub menu

This commit is contained in:
Peter Kirmeier 2023-04-16 17:39:32 +02:00
parent 61e10bea00
commit b12d4ad656

View file

@ -20,6 +20,7 @@ namespace SystemTrayMenu.Handler
private int rowIndex; private int rowIndex;
private ListView dgvTmp; private ListView dgvTmp;
private int rowIndexTmp; private int rowIndexTmp;
private bool alreadyOpened;
private int mouseMoveEvents; private int mouseMoveEvents;
private DateTime dateTimeLastMouseMoveEvent = DateTime.Now; private DateTime dateTimeLastMouseMoveEvent = DateTime.Now;
@ -170,8 +171,10 @@ namespace SystemTrayMenu.Handler
private void CallOpenMenuNow() private void CallOpenMenuNow()
{ {
if (dgv.Items.Count > rowIndex) if (dgv.Items.Count > rowIndex && !alreadyOpened)
{ {
alreadyOpened = true;
RowData rowData = ((ListViewItemData)dgv.Items[rowIndex]).data; RowData rowData = ((ListViewItemData)dgv.Items[rowIndex]).data;
Menu menu = (Menu)dgv.GetParentWindow(); Menu menu = (Menu)dgv.GetParentWindow();
rowData.Level = menu.Level; rowData.Level = menu.Level;
@ -193,6 +196,12 @@ namespace SystemTrayMenu.Handler
private void SetData(ListView dgv, int rowIndex) private void SetData(ListView dgv, int rowIndex)
{ {
if (this.dgv == dgv && this.rowIndex == rowIndex)
{
return;
}
alreadyOpened = false;
dgvTmp = null; dgvTmp = null;
this.dgv = dgv; this.dgv = dgv;
this.rowIndex = rowIndex; this.rowIndex = rowIndex;