From 9fe256c66d5f4671232f9ba925f907200940c608 Mon Sep 17 00:00:00 2001 From: Jaex Date: Wed, 10 Dec 2014 21:33:47 +0200 Subject: [PATCH] fixed #382: -StartScreenRecorder hotkey for be able to start it using last region --- ShareX/ApplicationConfig.cs | 6 ++++++ ShareX/Forms/MainForm.cs | 5 ++++- ShareX/Forms/ScreenRecordForm.cs | 16 +++++++++++++--- ShareX/TaskHelpers.cs | 8 ++++---- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/ShareX/ApplicationConfig.cs b/ShareX/ApplicationConfig.cs index b96aa1a04..2c5b778ec 100644 --- a/ShareX/ApplicationConfig.cs +++ b/ShareX/ApplicationConfig.cs @@ -188,5 +188,11 @@ public ApplicationConfig() public bool AutoCaptureWaitUpload = true; #endregion AutoCapture Form + + #region ScreenRecord Form + + public Rectangle ScreenRecordRegion = Rectangle.Empty; + + #endregion ScreenRecord Form } } \ No newline at end of file diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 594710adb..bb69f821c 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -1498,7 +1498,10 @@ private void ExecuteJob(TaskSettings taskSettings, HotkeyType job) CaptureScreenshot(CaptureType.LastRegion, safeTaskSettings, false); break; case HotkeyType.ScreenRecorder: - TaskHelpers.DoScreenRecording(safeTaskSettings); + TaskHelpers.StartScreenRecording(safeTaskSettings, false); + break; + case HotkeyType.StartScreenRecorder: + TaskHelpers.StartScreenRecording(safeTaskSettings, true); break; case HotkeyType.AutoCapture: TaskHelpers.OpenAutoCapture(); diff --git a/ShareX/Forms/ScreenRecordForm.cs b/ShareX/Forms/ScreenRecordForm.cs index 3773580ef..6b11de208 100644 --- a/ShareX/Forms/ScreenRecordForm.cs +++ b/ShareX/Forms/ScreenRecordForm.cs @@ -88,7 +88,7 @@ private void TrayIcon_MouseClick(object sender, MouseEventArgs e) } } - public void StartRecording(TaskSettings taskSettings) + public void StartRecording(TaskSettings taskSettings, bool skipRegionSelection = false) { if (taskSettings.CaptureSettings.RunScreencastCLI) { @@ -138,14 +138,24 @@ public void StartRecording(TaskSettings taskSettings) } Rectangle captureRectangle; - TaskHelpers.SelectRegion(out captureRectangle, taskSettings); - captureRectangle = CaptureHelpers.EvenRectangleSize(captureRectangle); + + if (skipRegionSelection) + { + captureRectangle = Program.Settings.ScreenRecordRegion; + } + else + { + TaskHelpers.SelectRegion(out captureRectangle, taskSettings); + captureRectangle = CaptureHelpers.EvenRectangleSize(captureRectangle); + } if (IsRecording || !captureRectangle.IsValid() || screenRecorder != null) { return; } + Program.Settings.ScreenRecordRegion = captureRectangle; + IsRecording = true; Screenshot.CaptureCursor = taskSettings.CaptureSettings.ShowCursor; diff --git a/ShareX/TaskHelpers.cs b/ShareX/TaskHelpers.cs index 70e79eedb..a2dc87d9d 100644 --- a/ShareX/TaskHelpers.cs +++ b/ShareX/TaskHelpers.cs @@ -451,17 +451,17 @@ public static void DoScreenRecordingFFmpeg() { TaskSettings taskSettings = TaskSettings.GetDefaultTaskSettings(); taskSettings.CaptureSettings.ScreenRecordOutput = ScreenRecordOutput.FFmpeg; - DoScreenRecording(taskSettings); + StartScreenRecording(taskSettings); } public static void DoScreenRecordingGIF() { TaskSettings taskSettings = TaskSettings.GetDefaultTaskSettings(); taskSettings.CaptureSettings.ScreenRecordOutput = ScreenRecordOutput.GIF; - DoScreenRecording(taskSettings); + StartScreenRecording(taskSettings); } - public static void DoScreenRecording(TaskSettings taskSettings = null) + public static void StartScreenRecording(TaskSettings taskSettings = null, bool skipRegionSelection = false) { if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings(); @@ -473,7 +473,7 @@ public static void DoScreenRecording(TaskSettings taskSettings = null) } else { - form.StartRecording(taskSettings); + form.StartRecording(taskSettings, skipRegionSelection); } }