Esempio n. 1
0
        /// <summary>
        /// Set a winform windows "X group leader" value.
        /// By default all mono winform applications get the same group leader (WM_HINTS property)
        /// (use xprop to see a windows WM_HINTS values)
        /// </summary>
        public static void SetGroupLeader(IntPtr handle, IntPtr newValue)
        {
            var    x11Handle = MonoGetX11Window(handle);
            IntPtr ptr       = NativeX11Methods.XGetWMHints(NativeReplacements.MonoGetDisplayHandle(), x11Handle);
            var    wmhints   = (NativeX11Methods.XWMHints)Marshal.PtrToStructure(ptr, typeof(NativeX11Methods.XWMHints));

            NativeX11Methods.XFree(ptr);
            wmhints.window_group = NativeReplacements.MonoGetX11Window(newValue);
            NativeX11Methods.XSetWMHints(NativeReplacements.MonoGetDisplayHandle(), NativeReplacements.MonoGetX11Window(x11Handle), ref wmhints);
        }
Esempio n. 2
0
        public static void SetWmClass(string name, string @class, IntPtr handle)
        {
            var a = new NativeX11Methods.XClassHint {
                res_name = Marshal.StringToCoTaskMemAnsi(name), res_class = Marshal.StringToCoTaskMemAnsi(@class)
            };
            IntPtr classHints = Marshal.AllocCoTaskMem(Marshal.SizeOf(a));

            Marshal.StructureToPtr(a, classHints, true);

            NativeX11Methods.XSetClassHint(NativeReplacements.MonoGetDisplayHandle(), NativeReplacements.MonoGetX11Window(handle), classHints);

            Marshal.FreeCoTaskMem(a.res_name);
            Marshal.FreeCoTaskMem(a.res_class);

            Marshal.FreeCoTaskMem(classHints);
        }