summaryrefslogtreecommitdiff
path: root/dev-lang/mono/files/mono-5.12-try-catch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/mono/files/mono-5.12-try-catch.patch')
-rw-r--r--dev-lang/mono/files/mono-5.12-try-catch.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/dev-lang/mono/files/mono-5.12-try-catch.patch b/dev-lang/mono/files/mono-5.12-try-catch.patch
new file mode 100644
index 0000000..051c72b
--- /dev/null
+++ b/dev-lang/mono/files/mono-5.12-try-catch.patch
@@ -0,0 +1,31 @@
+diff -ur mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
+--- mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-11-17 18:12:57.000000000 +0300
++++ mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-12-06 06:24:45.067519852 +0300
+@@ -2810,14 +2810,21 @@
+
+ internal override object ClipboardRetrieve(IntPtr handle, int type, XplatUI.ClipboardToObject converter)
+ {
+- XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero);
++ try
++ {
++ XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero);
+
+- Clipboard.Retrieving = true;
+- while (Clipboard.Retrieving) {
+- UpdateMessageQueue(null, false);
+- }
++ Clipboard.Retrieving = true;
++ while (Clipboard.Retrieving) {
++ UpdateMessageQueue(null, false);
++ }
+
+- return Clipboard.Item;
++ return Clipboard.Item;
++ }
++ catch (Exception ex)
++ {
++ return null;
++ }
+ }
+
+ internal override void ClipboardStore (IntPtr handle, object obj, int type, XplatUI.ObjectToClipboard converter, bool copy)