public static string GetErrorText(IntPtr display, XErrorEvent xevent) { StringBuilder sb = new StringBuilder(1000); Native.XGetErrorText(display, xevent.error_code, sb, sb.Capacity); return(sb.ToString()); }
public static IntPtr IgnoreErrorHandler(IntPtr display, IntPtr ev) { XErrorEvent xevent = Structure <XErrorEvent> (ev); string text = GetErrorText(display, xevent); XErrorException excp = new XErrorException(xevent, text); Do.Platform.Log <XRandR.Tools> .Debug("XRandR plugin: {0}\n{1}", excp.ToString(), Environment.StackTrace); // don't know if it is a good idea to throw an exception out // of unmanaged code? But seems to work well. throw excp; }
internal XErrorException(XErrorEvent xevent, string text) { this.xevent = xevent; this.error_text = text; }