mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-24 20:57:19 -08:00
fix: drag window won't stop (#326)
This commit is contained in:
parent
2e433aa278
commit
1d15c4c95f
10 changed files with 36 additions and 158 deletions
|
@ -24,9 +24,7 @@
|
||||||
Background="{DynamicResource Brush.TitleBar}"
|
Background="{DynamicResource Brush.TitleBar}"
|
||||||
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
|
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
|
||||||
DoubleTapped="MaximizeOrRestoreWindow"
|
DoubleTapped="MaximizeOrRestoreWindow"
|
||||||
PointerPressed="BeginMoveWindow"
|
PointerPressed="BeginMoveWindow"/>
|
||||||
PointerMoved="MoveWindow"
|
|
||||||
PointerReleased="EndMoveWindow"/>
|
|
||||||
|
|
||||||
<!-- Caption Buttons (macOS) -->
|
<!-- Caption Buttons (macOS) -->
|
||||||
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
||||||
|
|
|
@ -330,8 +330,6 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void MaximizeOrRestoreWindow(object _, TappedEventArgs e)
|
private void MaximizeOrRestoreWindow(object _, TappedEventArgs e)
|
||||||
{
|
{
|
||||||
_pressedTitleBar = false;
|
|
||||||
|
|
||||||
if (WindowState == WindowState.Maximized)
|
if (WindowState == WindowState.Maximized)
|
||||||
WindowState = WindowState.Normal;
|
WindowState = WindowState.Normal;
|
||||||
else
|
else
|
||||||
|
@ -342,34 +340,10 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.ClickCount != 2)
|
if (e.ClickCount == 1)
|
||||||
_pressedTitleBar = true;
|
BeginMoveDrag(e);
|
||||||
}
|
|
||||||
|
|
||||||
private void MoveWindow(object _, PointerEventArgs e)
|
e.Handled = true;
|
||||||
{
|
|
||||||
if (!_pressedTitleBar || e.Source == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var visual = (Visual)e.Source;
|
|
||||||
if (visual == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
BeginMoveDrag(new PointerPressedEventArgs(
|
|
||||||
e.Source,
|
|
||||||
e.Pointer,
|
|
||||||
visual,
|
|
||||||
e.GetPosition(visual),
|
|
||||||
e.Timestamp,
|
|
||||||
new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed),
|
|
||||||
e.KeyModifiers));
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
}
|
|
||||||
|
|
||||||
private void EndMoveWindow(object _1, PointerReleasedEventArgs _2)
|
|
||||||
{
|
|
||||||
_pressedTitleBar = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnClosed(EventArgs e)
|
protected override void OnClosed(EventArgs e)
|
||||||
|
@ -377,7 +351,5 @@ namespace SourceGit.Views
|
||||||
base.OnClosed(e);
|
base.OnClosed(e);
|
||||||
GC.Collect();
|
GC.Collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _pressedTitleBar = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,9 +26,7 @@
|
||||||
Background="{DynamicResource Brush.TitleBar}"
|
Background="{DynamicResource Brush.TitleBar}"
|
||||||
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
|
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
|
||||||
DoubleTapped="MaximizeOrRestoreWindow"
|
DoubleTapped="MaximizeOrRestoreWindow"
|
||||||
PointerPressed="BeginMoveWindow"
|
PointerPressed="BeginMoveWindow"/>
|
||||||
PointerMoved="MoveWindow"
|
|
||||||
PointerReleased="EndMoveWindow"/>
|
|
||||||
|
|
||||||
<!-- Caption Buttons (macOS) -->
|
<!-- Caption Buttons (macOS) -->
|
||||||
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Input;
|
using Avalonia.Input;
|
||||||
|
|
||||||
|
@ -13,8 +12,6 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void MaximizeOrRestoreWindow(object _, TappedEventArgs e)
|
private void MaximizeOrRestoreWindow(object _, TappedEventArgs e)
|
||||||
{
|
{
|
||||||
_pressedTitleBar = false;
|
|
||||||
|
|
||||||
if (WindowState == WindowState.Maximized)
|
if (WindowState == WindowState.Maximized)
|
||||||
WindowState = WindowState.Normal;
|
WindowState = WindowState.Normal;
|
||||||
else
|
else
|
||||||
|
@ -25,34 +22,10 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.ClickCount != 2)
|
if (e.ClickCount == 1)
|
||||||
_pressedTitleBar = true;
|
BeginMoveDrag(e);
|
||||||
}
|
|
||||||
|
|
||||||
private void MoveWindow(object _, PointerEventArgs e)
|
e.Handled = true;
|
||||||
{
|
|
||||||
if (!_pressedTitleBar || e.Source == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var visual = (Visual)e.Source;
|
|
||||||
if (visual == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
BeginMoveDrag(new PointerPressedEventArgs(
|
|
||||||
e.Source,
|
|
||||||
e.Pointer,
|
|
||||||
visual,
|
|
||||||
e.GetPosition(visual),
|
|
||||||
e.Timestamp,
|
|
||||||
new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed),
|
|
||||||
e.KeyModifiers));
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
}
|
|
||||||
|
|
||||||
private void EndMoveWindow(object _1, PointerReleasedEventArgs _2)
|
|
||||||
{
|
|
||||||
_pressedTitleBar = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e)
|
private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e)
|
||||||
|
@ -73,7 +46,5 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _pressedTitleBar = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,31 +11,31 @@ namespace SourceGit.Views
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MinimizeWindow(object _1, RoutedEventArgs _2)
|
private void MinimizeWindow(object _, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var window = this.FindAncestorOfType<Window>();
|
var window = this.FindAncestorOfType<Window>();
|
||||||
if (window != null)
|
if (window != null)
|
||||||
{
|
|
||||||
window.WindowState = WindowState.Minimized;
|
window.WindowState = WindowState.Minimized;
|
||||||
}
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MaximizeOrRestoreWindow(object _1, RoutedEventArgs _2)
|
private void MaximizeOrRestoreWindow(object _, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var window = this.FindAncestorOfType<Window>();
|
var window = this.FindAncestorOfType<Window>();
|
||||||
if (window != null)
|
if (window != null)
|
||||||
{
|
|
||||||
window.WindowState = window.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
|
window.WindowState = window.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
|
||||||
}
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CloseWindow(object _1, RoutedEventArgs _2)
|
private void CloseWindow(object _, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var window = this.FindAncestorOfType<Window>();
|
var window = this.FindAncestorOfType<Window>();
|
||||||
if (window != null)
|
if (window != null)
|
||||||
{
|
|
||||||
window.Close();
|
window.Close();
|
||||||
}
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,31 +11,31 @@ namespace SourceGit.Views
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MinimizeWindow(object _1, RoutedEventArgs _2)
|
private void MinimizeWindow(object _, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var window = this.FindAncestorOfType<Window>();
|
var window = this.FindAncestorOfType<Window>();
|
||||||
if (window != null)
|
if (window != null)
|
||||||
{
|
|
||||||
window.WindowState = WindowState.Minimized;
|
window.WindowState = WindowState.Minimized;
|
||||||
}
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MaximizeOrRestoreWindow(object _1, RoutedEventArgs _2)
|
private void MaximizeOrRestoreWindow(object _, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var window = this.FindAncestorOfType<Window>();
|
var window = this.FindAncestorOfType<Window>();
|
||||||
if (window != null)
|
if (window != null)
|
||||||
{
|
|
||||||
window.WindowState = window.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
|
window.WindowState = window.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
|
||||||
}
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CloseWindow(object _1, RoutedEventArgs _2)
|
private void CloseWindow(object _, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var window = this.FindAncestorOfType<Window>();
|
var window = this.FindAncestorOfType<Window>();
|
||||||
if (window != null)
|
if (window != null)
|
||||||
{
|
|
||||||
window.Close();
|
window.Close();
|
||||||
}
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,9 +26,7 @@
|
||||||
Background="{DynamicResource Brush.TitleBar}"
|
Background="{DynamicResource Brush.TitleBar}"
|
||||||
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
|
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
|
||||||
DoubleTapped="MaximizeOrRestoreWindow"
|
DoubleTapped="MaximizeOrRestoreWindow"
|
||||||
PointerPressed="BeginMoveWindow"
|
PointerPressed="BeginMoveWindow"/>
|
||||||
PointerMoved="MoveWindow"
|
|
||||||
PointerReleased="EndMoveWindow"/>
|
|
||||||
|
|
||||||
<!-- Caption Buttons (macOS) -->
|
<!-- Caption Buttons (macOS) -->
|
||||||
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Input;
|
using Avalonia.Input;
|
||||||
|
|
||||||
|
@ -13,8 +12,6 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void MaximizeOrRestoreWindow(object _, TappedEventArgs e)
|
private void MaximizeOrRestoreWindow(object _, TappedEventArgs e)
|
||||||
{
|
{
|
||||||
_pressedTitleBar = false;
|
|
||||||
|
|
||||||
if (WindowState == WindowState.Maximized)
|
if (WindowState == WindowState.Maximized)
|
||||||
WindowState = WindowState.Normal;
|
WindowState = WindowState.Normal;
|
||||||
else
|
else
|
||||||
|
@ -25,36 +22,10 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.ClickCount != 2)
|
if (e.ClickCount == 1)
|
||||||
_pressedTitleBar = true;
|
BeginMoveDrag(e);
|
||||||
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MoveWindow(object _, PointerEventArgs e)
|
|
||||||
{
|
|
||||||
if (!_pressedTitleBar || e.Source == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var visual = (Visual)e.Source;
|
|
||||||
if (visual == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
BeginMoveDrag(new PointerPressedEventArgs(
|
|
||||||
e.Source,
|
|
||||||
e.Pointer,
|
|
||||||
visual,
|
|
||||||
e.GetPosition(visual),
|
|
||||||
e.Timestamp,
|
|
||||||
new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed),
|
|
||||||
e.KeyModifiers));
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
}
|
|
||||||
|
|
||||||
private void EndMoveWindow(object _1, PointerReleasedEventArgs _2)
|
|
||||||
{
|
|
||||||
_pressedTitleBar = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool _pressedTitleBar = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,9 +25,7 @@
|
||||||
Background="{DynamicResource Brush.TitleBar}"
|
Background="{DynamicResource Brush.TitleBar}"
|
||||||
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
|
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
|
||||||
DoubleTapped="OnTitleBarDoubleTapped"
|
DoubleTapped="OnTitleBarDoubleTapped"
|
||||||
PointerPressed="BeginMoveWindow"
|
PointerPressed="BeginMoveWindow"/>
|
||||||
PointerMoved="MoveWindow"
|
|
||||||
PointerReleased="EndMoveWindow"/>
|
|
||||||
|
|
||||||
<!-- Caption Buttons (macOS) -->
|
<!-- Caption Buttons (macOS) -->
|
||||||
<Border Grid.Column="0" VerticalAlignment="Stretch" Margin="2,0,8,3" IsVisible="{OnPlatform False, macOS=True}">
|
<Border Grid.Column="0" VerticalAlignment="Stretch" Margin="2,0,8,3" IsVisible="{OnPlatform False, macOS=True}">
|
||||||
|
|
|
@ -163,8 +163,6 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void OnTitleBarDoubleTapped(object _, TappedEventArgs e)
|
private void OnTitleBarDoubleTapped(object _, TappedEventArgs e)
|
||||||
{
|
{
|
||||||
_pressedTitleBar = false;
|
|
||||||
|
|
||||||
if (WindowState == WindowState.Maximized)
|
if (WindowState == WindowState.Maximized)
|
||||||
WindowState = WindowState.Normal;
|
WindowState = WindowState.Normal;
|
||||||
else
|
else
|
||||||
|
@ -175,36 +173,10 @@ namespace SourceGit.Views
|
||||||
|
|
||||||
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
private void BeginMoveWindow(object _, PointerPressedEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.ClickCount != 2)
|
if (e.ClickCount == 1)
|
||||||
_pressedTitleBar = true;
|
BeginMoveDrag(e);
|
||||||
|
|
||||||
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MoveWindow(object _, PointerEventArgs e)
|
|
||||||
{
|
|
||||||
if (!_pressedTitleBar || e.Source == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var visual = (Visual)e.Source;
|
|
||||||
if (visual == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
BeginMoveDrag(new PointerPressedEventArgs(
|
|
||||||
e.Source,
|
|
||||||
e.Pointer,
|
|
||||||
visual,
|
|
||||||
e.GetPosition(visual),
|
|
||||||
e.Timestamp,
|
|
||||||
new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed),
|
|
||||||
e.KeyModifiers));
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
}
|
|
||||||
|
|
||||||
private void EndMoveWindow(object _1, PointerReleasedEventArgs _2)
|
|
||||||
{
|
|
||||||
_pressedTitleBar = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool _pressedTitleBar = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue