mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Added LockCursorToWindow method
This commit is contained in:
parent
a7fca59d1e
commit
61ced16d45
4 changed files with 15 additions and 36 deletions
|
@ -1705,5 +1705,11 @@ public static bool SendFileToRecycleBin(string filePath)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void LockCursorToWindow(Form form)
|
||||
{
|
||||
form.Activated += (sender, e) => Cursor.Clip = form.Bounds;
|
||||
form.Deactivate += (sender, e) => Cursor.Clip = Rectangle.Empty;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -199,6 +199,8 @@ private void InitializeComponent()
|
|||
if (Options.ActiveMonitorMode)
|
||||
{
|
||||
Bounds = CaptureHelpers.GetActiveScreenBounds();
|
||||
|
||||
Helpers.LockCursorToWindow(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -262,11 +264,10 @@ private void InitializeComponent()
|
|||
KeyDown += RegionCaptureForm_KeyDown;
|
||||
MouseDown += RegionCaptureForm_MouseDown;
|
||||
MouseWheel += RegionCaptureForm_MouseWheel;
|
||||
MouseEnter += RegionCaptureForm_MouseEnter;
|
||||
Resize += RegionCaptureForm_Resize;
|
||||
LocationChanged += RegionCaptureForm_LocationChanged;
|
||||
LostFocus += RegionCaptureForm_LostFocus;
|
||||
GotFocus += RegionCaptureForm_GotFocus;
|
||||
LostFocus += RegionCaptureForm_LostFocus;
|
||||
FormClosing += RegionCaptureForm_FormClosing;
|
||||
|
||||
ResumeLayout(false);
|
||||
|
@ -687,14 +688,6 @@ private void RegionCaptureForm_MouseDown(object sender, MouseEventArgs e)
|
|||
}
|
||||
}
|
||||
|
||||
private void RegionCaptureForm_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
if (IsFullscreen && Options.ActiveMonitorMode)
|
||||
{
|
||||
Cursor.Clip = Bounds;
|
||||
}
|
||||
}
|
||||
|
||||
private void RegionCaptureForm_MouseWheel(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (IsEditorMode && ModifierKeys == Keys.Control)
|
||||
|
|
|
@ -44,7 +44,6 @@ public sealed class RegionCaptureLightForm : Form
|
|||
public Rectangle SelectionRectangle { get; private set; }
|
||||
public Rectangle SelectionRectangle0Based => new Rectangle(SelectionRectangle.X - ScreenRectangle.X, SelectionRectangle.Y - ScreenRectangle.Y,
|
||||
SelectionRectangle.Width, SelectionRectangle.Height);
|
||||
public bool ActiveMonitorMode { get; private set; }
|
||||
|
||||
private Timer timer;
|
||||
private Bitmap backgroundImage;
|
||||
|
@ -63,11 +62,11 @@ public RegionCaptureLightForm(Screenshot screenshot, bool activeMonitorMode = fa
|
|||
borderDotPen2.DashPattern = new float[] { 5, 5 };
|
||||
penTimer = Stopwatch.StartNew();
|
||||
|
||||
ActiveMonitorMode = activeMonitorMode;
|
||||
|
||||
if (ActiveMonitorMode)
|
||||
if (activeMonitorMode)
|
||||
{
|
||||
ScreenRectangle = CaptureHelpers.GetActiveScreenBounds();
|
||||
|
||||
Helpers.LockCursorToWindow(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -113,7 +112,6 @@ private void InitializeComponent()
|
|||
KeyUp += RectangleLight_KeyUp;
|
||||
MouseDown += RectangleLight_MouseDown;
|
||||
MouseUp += RectangleLight_MouseUp;
|
||||
MouseEnter += RegionLight_MouseEnter;
|
||||
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
@ -171,14 +169,6 @@ private void RectangleLight_MouseUp(object sender, MouseEventArgs e)
|
|||
}
|
||||
}
|
||||
|
||||
private void RegionLight_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
if (ActiveMonitorMode)
|
||||
{
|
||||
Cursor.Clip = Bounds;
|
||||
}
|
||||
}
|
||||
|
||||
public Bitmap GetAreaImage()
|
||||
{
|
||||
Rectangle rect = SelectionRectangle0Based;
|
||||
|
|
|
@ -47,7 +47,6 @@ public sealed class RegionCaptureTransparentForm : LayeredForm
|
|||
private Rectangle PreviousSelectionRectangle { get; set; }
|
||||
private Rectangle PreviousSelectionRectangle0Based => new Rectangle(PreviousSelectionRectangle.X - ScreenRectangle.X,
|
||||
PreviousSelectionRectangle.Y - ScreenRectangle.Y, PreviousSelectionRectangle.Width, PreviousSelectionRectangle.Height);
|
||||
public bool ActiveMonitorMode { get; private set; }
|
||||
|
||||
private Timer timer;
|
||||
private Bitmap backgroundImage;
|
||||
|
@ -65,11 +64,11 @@ public RegionCaptureTransparentForm(bool activeMonitorMode = false)
|
|||
borderDotPen2.DashPattern = new float[] { 5, 5 };
|
||||
penTimer = Stopwatch.StartNew();
|
||||
|
||||
ActiveMonitorMode = activeMonitorMode;
|
||||
|
||||
if (ActiveMonitorMode)
|
||||
if (activeMonitorMode)
|
||||
{
|
||||
ScreenRectangle = CaptureHelpers.GetActiveScreenBounds();
|
||||
|
||||
Helpers.LockCursorToWindow(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -94,7 +93,6 @@ public RegionCaptureTransparentForm(bool activeMonitorMode = false)
|
|||
KeyUp += RectangleTransparent_KeyUp;
|
||||
MouseDown += RectangleTransparent_MouseDown;
|
||||
MouseUp += RectangleTransparent_MouseUp;
|
||||
MouseEnter += RectangleTransparent_MouseEnter;
|
||||
|
||||
timer = new Timer { Interval = 10 };
|
||||
timer.Tick += timer_Tick;
|
||||
|
@ -165,14 +163,6 @@ private void RectangleTransparent_MouseUp(object sender, MouseEventArgs e)
|
|||
}
|
||||
}
|
||||
|
||||
private void RectangleTransparent_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
if (ActiveMonitorMode)
|
||||
{
|
||||
Cursor.Clip = Bounds;
|
||||
}
|
||||
}
|
||||
|
||||
public Bitmap GetAreaImage(Screenshot screenshot)
|
||||
{
|
||||
Rectangle rect = SelectionRectangle0Based;
|
||||
|
|
Loading…
Reference in a new issue