Add exception handling on Clipboard.SetText, fall back to SetDataObject

This commit is contained in:
baldurk
2015-07-06 18:15:49 +02:00
parent 069e2047ae
commit 6afbe8c92b
5 changed files with 100 additions and 11 deletions
+34 -4
View File
@@ -275,8 +275,23 @@ namespace renderdocui.Windows
text += string.Format("{0,-5} {1}" + Environment.NewLine, n[0].ToString(), n[1].ToString());
}
if (text.Length > 0)
Clipboard.SetText(text);
try
{
if (text.Length > 0)
Clipboard.SetText(text);
}
catch (System.Exception)
{
try
{
if (text.Length > 0)
Clipboard.SetDataObject(text);
}
catch (System.Exception)
{
// give up!
}
}
}
}
@@ -292,8 +307,23 @@ namespace renderdocui.Windows
text += n.ToString() + Environment.NewLine;
}
if (text.Length > 0)
Clipboard.SetText(text);
try
{
if (text.Length > 0)
Clipboard.SetText(text);
}
catch (System.Exception)
{
try
{
if (text.Length > 0)
Clipboard.SetDataObject(text);
}
catch (System.Exception)
{
// give up!
}
}
}
}
+17 -2
View File
@@ -670,8 +670,23 @@ namespace renderdocui.Windows
}
text += Environment.NewLine;
if (text.Length > 0)
Clipboard.SetText(text);
try
{
if (text.Length > 0)
Clipboard.SetText(text);
}
catch (System.Exception)
{
try
{
if (text.Length > 0)
Clipboard.SetDataObject(text);
}
catch (System.Exception)
{
// give up!
}
}
}
}
}
@@ -1694,8 +1694,23 @@ namespace renderdocui.Windows.PipelineState
}
}
if(text.Length > 0)
Clipboard.SetText(text);
try
{
if (text.Length > 0)
Clipboard.SetText(text);
}
catch (System.Exception)
{
try
{
if (text.Length > 0)
Clipboard.SetDataObject(text);
}
catch (System.Exception)
{
// give up!
}
}
}
}
@@ -1712,8 +1712,23 @@ namespace renderdocui.Windows.PipelineState
}
}
if (text.Length > 0)
Clipboard.SetText(text);
try
{
if (text.Length > 0)
Clipboard.SetText(text);
}
catch (System.Exception)
{
try
{
if (text.Length > 0)
Clipboard.SetDataObject(text);
}
catch (System.Exception)
{
// give up!
}
}
}
}
+15 -1
View File
@@ -2293,7 +2293,21 @@ namespace renderdocui.Windows
if (e.KeyCode == Keys.C && e.Control)
{
Clipboard.SetText(texStatusDim.Text + " | " + statusLabel.Text);
try
{
Clipboard.SetText(texStatusDim.Text + " | " + statusLabel.Text);
}
catch (System.Exception)
{
try
{
Clipboard.SetDataObject(texStatusDim.Text + " | " + statusLabel.Text);
}
catch (System.Exception)
{
// give up!
}
}
}
if (!m_Core.LogLoaded) return;