fixed #363 and #360: Screen recording was causing error when fullscreen

This commit is contained in:
Jaex 2014-11-10 05:12:57 +02:00
parent 09140e71c1
commit 5dff007a22
5 changed files with 38 additions and 27 deletions

View file

@ -152,6 +152,18 @@ public bool IsCommandExist(params string[] commands)
return false;
}
public string GetParameter(string command)
{
CLICommand cliCommand = Commands.Find(x => command.Equals(x.Command, StringComparison.InvariantCultureIgnoreCase));
if (cliCommand != null)
{
return cliCommand.Parameter;
}
return null;
}
public void ExecuteActions()
{
foreach (CLICommandAction action in Actions)

View file

@ -176,11 +176,12 @@ private void UpdatePersonalFolderPathPreview()
private void cbLanguage_SelectedIndexChanged(object sender, EventArgs e)
{
Program.Settings.Language = (SupportedLanguage)cbLanguage.SelectedIndex;
if (loaded && LanguageHelper.ChangeLanguage(Program.Settings.Language))
if (loaded)
{
if (MessageBox.Show(Resources.ApplicationSettingsForm_cbLanguage_SelectedIndexChanged_Language_Restart,
Program.Settings.Language = (SupportedLanguage)cbLanguage.SelectedIndex;
if (LanguageHelper.ChangeLanguage(Program.Settings.Language) &&
MessageBox.Show(Resources.ApplicationSettingsForm_cbLanguage_SelectedIndexChanged_Language_Restart,
"ShareX", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
{
Program.Restart();

View file

@ -182,7 +182,7 @@ public void StartRecording(TaskSettings taskSettings)
if (regionForm != null && regionForm.RecordResetEvent != null)
{
if (taskSettings.CaptureSettings.ScreenRecordAutoStart)
if (taskSettings.CaptureSettings.ScreenRecordAutoStart || captureRectangle.Height == CaptureHelpers.GetScreenBounds().Height)
{
int delay = (int)(taskSettings.CaptureSettings.ScreenRecordStartDelay * 1000);

View file

@ -50,7 +50,7 @@ private void InitializeComponent()
resources.ApplyResources(this.btnStop, "btnStop");
this.btnStop.ForeColor = System.Drawing.Color.White;
this.btnStop.Name = "btnStop";
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
this.btnStop.MouseClick += new System.Windows.Forms.MouseEventHandler(this.btnStop_MouseClick);
//
// lblTimer
//

View file

@ -76,23 +76,18 @@ protected void OnStopRequested()
public static ScreenRegionForm Show(Rectangle captureRectangle, Action stopRequested, float duration = 0)
{
if (captureRectangle != CaptureHelpers.GetScreenBounds())
ScreenRegionForm regionForm = new ScreenRegionForm(captureRectangle);
regionForm.StopRequested += stopRequested;
if (duration > 0)
{
ScreenRegionForm regionForm = new ScreenRegionForm(captureRectangle);
regionForm.StopRequested += stopRequested;
if (duration > 0)
{
regionForm.IsCountdown = true;
regionForm.Countdown = TimeSpan.FromSeconds(duration);
}
regionForm.UpdateTimer();
regionForm.Show();
return regionForm;
regionForm.IsCountdown = true;
regionForm.Countdown = TimeSpan.FromSeconds(duration);
}
return null;
regionForm.UpdateTimer();
regionForm.Show();
return regionForm;
}
public void StartTimer()
@ -143,15 +138,18 @@ private void timerRefresh_Tick(object sender, EventArgs e)
UpdateTimer();
}
private void btnStop_Click(object sender, EventArgs e)
private void btnStop_MouseClick(object sender, MouseEventArgs e)
{
if (IsRecording)
if (e.Button == MouseButtons.Left)
{
OnStopRequested();
}
else if (RecordResetEvent != null)
{
RecordResetEvent.Set();
if (IsRecording)
{
OnStopRequested();
}
else if (RecordResetEvent != null)
{
RecordResetEvent.Set();
}
}
}
}