void CheckIcon() { Trace.Call(); var iconCache = new IconCache("server-icons"); // REMOTING CALL var protocol = ProtocolManager.Protocol; string iconName = String.Format("{0}.ico", ID); string iconPath; if (iconCache.TryGetIcon(protocol, iconName, out iconPath)) { UpdateServerIcon(iconPath); } string websiteUrl = null; lock (NetworkWebsiteUrls) { if (!NetworkWebsiteUrls.TryGetValue(ID, out websiteUrl) && !NetworkWebsiteUrls.TryGetValue(protocol, out websiteUrl)) { // unknown network and protocol, nothing to download return; } // download in background so Sync() doesn't get slowed down WebProxy proxy = null; // ignore the proxy settings of remote engines if (Frontend.IsLocalEngine) { proxy = ProxySettings.GetWebProxy(websiteUrl); if (proxy == null) { // HACK: WebClient will always use the system proxy if set to // null so explicitely override this by setting an empty proxy proxy = new WebProxy(); } } iconCache.Proxy = proxy; iconCache.BeginDownloadIcon(protocol, iconName, websiteUrl, UpdateServerIcon, null); } }
public MessageTextView() { Trace.Call(); _MessageTextTagTable = BuildTagTable(); _ThemeSettings = new ThemeSettings(); EmojiCache = new IconCache("emoji"); Buffer = new Gtk.TextBuffer(_MessageTextTagTable); MotionNotifyEvent += OnMotionNotifyEvent; PopulatePopup += OnPopulatePopup; ExposeEvent += OnExposeEvent; Realized += delegate { CheckStyle(); }; StyleSet += delegate(object o, Gtk.StyleSetArgs args) { if (!IsRealized) { // HACK: avoid GTK+ crash in gtk_text_attributes_copy_values() return; } CheckStyle(); }; }