mirror of
https://github.com/Hofknecht/SystemTrayMenu.git
synced 2024-07-09 08:16:41 +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="MouseLeave" Handler="ListViewItem_MouseLeave" />
|
||||||
<EventSetter Event="PreviewMouseDown" Handler="ListViewItem_PreviewMouseDown" />
|
<EventSetter Event="PreviewMouseDown" Handler="ListViewItem_PreviewMouseDown" />
|
||||||
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
|
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
|
||||||
|
<EventSetter Event="PreviewMouseLeftButtonUp" Handler="ListViewItem_PreviewMouseLeftButtonUp" />
|
||||||
<EventSetter Event="MouseRightButtonUp" Handler="ListViewItem_MouseRightButtonUp" />
|
<EventSetter Event="MouseRightButtonUp" Handler="ListViewItem_MouseRightButtonUp" />
|
||||||
</Style>
|
</Style>
|
||||||
</ListView.ItemContainerStyle>
|
</ListView.ItemContainerStyle>
|
||||||
|
|
|
@ -38,6 +38,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
|
|
||||||
private readonly string folderPath;
|
private readonly string folderPath;
|
||||||
|
|
||||||
|
private Tuple<ListViewItem?, int> detectLeftMouseButtonClicked = new(null, 0);
|
||||||
private bool isShellContextMenuOpen;
|
private bool isShellContextMenuOpen;
|
||||||
private bool directionToRight;
|
private bool directionToRight;
|
||||||
private Point lastLocation;
|
private Point lastLocation;
|
||||||
|
@ -1154,6 +1155,8 @@ namespace SystemTrayMenu.UserInterface
|
||||||
|
|
||||||
private void ListViewItem_MouseLeave(object sender, MouseEventArgs e)
|
private void ListViewItem_MouseLeave(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
|
detectLeftMouseButtonClicked = new (null, 0);
|
||||||
|
|
||||||
if (!isShellContextMenuOpen)
|
if (!isShellContextMenuOpen)
|
||||||
{
|
{
|
||||||
CellMouseLeave?.Invoke();
|
CellMouseLeave?.Invoke();
|
||||||
|
@ -1170,7 +1173,20 @@ namespace SystemTrayMenu.UserInterface
|
||||||
CellMouseDown?.Invoke((RowData)((ListViewItem)sender).Content);
|
CellMouseDown?.Invoke((RowData)((ListViewItem)sender).Content);
|
||||||
|
|
||||||
private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) =>
|
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)
|
private void ListViewItem_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue