From: Eberhard Beilharz Date: Fri, 16 May 2014 16:11:07 +0000 (+0200) Subject: [MWF] Fix opacity of form (#19856) X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=2614e55bee11d7b505d923ebe268e6f706310a21;p=mono.git [MWF] Fix opacity of form (#19856) --- diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs index c2512403392..a837d2ceda5 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs @@ -6109,12 +6109,13 @@ namespace System.Windows.Forms { } hwnd.opacity = (uint)(0xffffffff * transparency); - opacity = (IntPtr)((int)hwnd.opacity); + opacity = (IntPtr)hwnd.opacity; - IntPtr w = hwnd.whole_window; - if (hwnd.reparented) - w = XGetParent (hwnd.whole_window); - XChangeProperty(DisplayHandle, w, _NET_WM_WINDOW_OPACITY, (IntPtr)Atom.XA_CARDINAL, 32, PropertyMode.Replace, ref opacity, 1); + if (transparency >= 1.0) { + XDeleteProperty (DisplayHandle, hwnd.whole_window, _NET_WM_WINDOW_OPACITY); + } else { + XChangeProperty (DisplayHandle, hwnd.whole_window, _NET_WM_WINDOW_OPACITY, (IntPtr)Atom.XA_CARDINAL, 32, PropertyMode.Replace, ref opacity, 1); + } } internal override bool SetZOrder(IntPtr handle, IntPtr after_handle, bool top, bool bottom)