Exemple #1
0
        /// <summary>
        /// Set the window identifying properties in X11
        /// </summary>
        /// <param name="name">The window name</param>
        /// <param name="wmClass">The window class</param>
        /// <param name="handle">Value of Form.Handle for the window</param>
        public static void SetWMClass(string name, string wmClass, IntPtr handle)
        {
            var hint = new XClassHint()
            {
                res_name  = Marshal.StringToCoTaskMemAnsi(name),
                res_class = Marshal.StringToCoTaskMemAnsi(wmClass)
            };
            IntPtr classHints = Marshal.AllocCoTaskMem(Marshal.SizeOf(hint));

            Marshal.StructureToPtr(hint, classHints, true);

            XSetClassHint(DisplayHandle, GetWindow(handle), classHints);

            Marshal.FreeCoTaskMem(hint.res_name);
            Marshal.FreeCoTaskMem(hint.res_class);
            Marshal.FreeCoTaskMem(classHints);
        }
Exemple #2
0
        /// <summary>
        /// Set the window identifying properties in X11
        /// </summary>
        /// <param name="name">The window name</param>
        /// <param name="wmClass">The window class</param>
        /// <param name="handle">Value of Form.Handle for the window</param>
        public static void SetWMClass(string name, string wmClass, IntPtr handle)
        {
            var hint = new XClassHint()
            {
                res_name  = Marshal.StringToCoTaskMemAnsi(name),
                res_class = Marshal.StringToCoTaskMemAnsi(wmClass)
            };
            IntPtr classHints = Marshal.AllocCoTaskMem(Marshal.SizeOf(hint));

            Marshal.StructureToPtr(hint, classHints, true);

            try
            {
                XSetClassHint(DisplayHandle, GetWindow(handle), classHints);
            }
            catch (DllNotFoundException)
            {
                // If the DLL isn't there, don't worry about it
            }

            Marshal.FreeCoTaskMem(hint.res_name);
            Marshal.FreeCoTaskMem(hint.res_class);
            Marshal.FreeCoTaskMem(classHints);
        }