From 01a8eeec61ff73ad90c7db8a716ccd5c67bd56fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= Date: Wed, 24 Jan 2018 19:05:06 +0100 Subject: [PATCH] Avoid crash under GNOME if no gtk+2 available gtk+2 is non-essential part of the GNOME 3 desktop nowadays. --- .../System.Windows.Forms/System.Windows.Forms/MimeIcon.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mcs/class/System.Windows.Forms/System.Windows.Forms/MimeIcon.cs b/mcs/class/System.Windows.Forms/System.Windows.Forms/MimeIcon.cs index d56abff24652..c4311f37cae5 100644 --- a/mcs/class/System.Windows.Forms/System.Windows.Forms/MimeIcon.cs +++ b/mcs/class/System.Windows.Forms/System.Windows.Forms/MimeIcon.cs @@ -119,10 +119,17 @@ static MimeIconEngine () SmallIcons.ImageSize = new Size (24, 24); LargeIcons.ImageSize = new Size (48, 48); - platformMimeHandler = new GnomeHandler (); - if (platformMimeHandler.Start () == MimeExtensionHandlerStatus.OK) { - platform = EPlatformHandler.GNOME; - } else { + try { + platformMimeHandler = new GnomeHandler (); + if (platformMimeHandler.Start () == MimeExtensionHandlerStatus.OK) { + platform = EPlatformHandler.GNOME; + } else { + MimeIconEngine.LargeIcons.Images.Clear (); + MimeIconEngine.SmallIcons.Images.Clear (); + platformMimeHandler = new PlatformDefaultHandler (); + platformMimeHandler.Start (); + } + } catch { MimeIconEngine.LargeIcons.Images.Clear (); MimeIconEngine.SmallIcons.Images.Clear (); platformMimeHandler = new PlatformDefaultHandler ();