mirror of
https://github.com/Hofknecht/SystemTrayMenu.git
synced 2024-07-06 06:51:04 +12:00
Move item execution into mouse button up event
This commit is contained in:
parent
bfd50ae141
commit
72c225a912
|
@ -205,6 +205,7 @@
|
|||
<EventSetter Event="MouseLeave" Handler="ListViewItem_MouseLeave" />
|
||||
<EventSetter Event="PreviewMouseDown" Handler="ListViewItem_PreviewMouseDown" />
|
||||
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
|
||||
<EventSetter Event="PreviewMouseLeftButtonUp" Handler="ListViewItem_PreviewMouseLeftButtonUp" />
|
||||
<EventSetter Event="MouseRightButtonUp" Handler="ListViewItem_MouseRightButtonUp" />
|
||||
</Style>
|
||||
</ListView.ItemContainerStyle>
|
||||
|
|
|
@ -38,6 +38,7 @@ namespace SystemTrayMenu.UserInterface
|
|||
|
||||
private readonly string folderPath;
|
||||
|
||||
private Tuple<ListViewItem?, int> detectLeftMouseButtonClicked = new(null, 0);
|
||||
private bool isShellContextMenuOpen;
|
||||
private bool directionToRight;
|
||||
private Point lastLocation;
|
||||
|
@ -1154,6 +1155,8 @@ namespace SystemTrayMenu.UserInterface
|
|||
|
||||
private void ListViewItem_MouseLeave(object sender, MouseEventArgs e)
|
||||
{
|
||||
detectLeftMouseButtonClicked = new (null, 0);
|
||||
|
||||
if (!isShellContextMenuOpen)
|
||||
{
|
||||
CellMouseLeave?.Invoke();
|
||||
|
@ -1170,7 +1173,20 @@ namespace SystemTrayMenu.UserInterface
|
|||
CellMouseDown?.Invoke((RowData)((ListViewItem)sender).Content);
|
||||
|
||||
private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) =>
|
||||
((RowData)((ListViewItem)sender).Content).OpenItem(e.ClickCount);
|
||||
detectLeftMouseButtonClicked = new((ListViewItem)sender, e.ClickCount);
|
||||
|
||||
private void ListViewItem_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
ListViewItem lvi = (ListViewItem)sender;
|
||||
if (detectLeftMouseButtonClicked.Item1 == lvi)
|
||||
{
|
||||
// Same row has been called with PreviewMouseLeftButtonDown without leaving the item, so we can call it a "click".
|
||||
// The click count is also taken from Down event as it seems not being correct in Up event.
|
||||
((RowData)lvi.Content).OpenItem(detectLeftMouseButtonClicked.Item2);
|
||||
}
|
||||
|
||||
detectLeftMouseButtonClicked = new(null, 0);
|
||||
}
|
||||
|
||||
private void ListViewItem_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue