In System.Windows.Forms:
commit9c96c564b080651900df2e8178d9283e85c30277
authorChris Toshok <toshok@novell.com>
Thu, 30 Nov 2006 01:53:42 +0000 (30 01:53 -0000)
committerChris Toshok <toshok@novell.com>
Thu, 30 Nov 2006 01:53:42 +0000 (30 01:53 -0000)
treea1f898ec3d2a56c997c9ecbaddf20c62a68a67e0
parent548f7b13c3b225a962b70b9c0ce352c2a0630e0c
In System.Windows.Forms:
[ totally cosmetic eye-candy feature, fixes bug #80089 ]

* Form.cs: only call the XplatUI transparency method (get/set) if
SupportsTransparency says it's supported. Otherwise fallback to
doing nothing (in the set case) or returning the instance field we
cache (in the get case).

* XplatUIStructs.cs: add TransparencySupport flag enum.

* XplatUIDriver.cs: add abstract GetWindowTransparency, and track
change to SupportsTransparency.

* XplatUIOSX.cs: stub out GetWindowTransparency, and return
TransparencySupport.None from SupportsTransparency.

* XplatUIX11.cs: Stub out GetWindowTransparency, and return
TransparencySupport.Set from SupportsTransparency.

* XplatUIWin32.cs: implement GetWindowTransparency calling
GetLayeredWindowAttributes, and implement SupportsTransparency by
checking whether or not both
GetWindowTransparency/SetWindowTransparency are available
entrypoints.  We need to do this since SetWindowTransparency is
available as of win2k, but GetWindowTransparency requires winxp.
yay win32 api.

* XplatUI.cs: Add GetWindowTransparency, and change
SupportsTransparency to allow for either/both Get/Set.

2006-11-29  Chris Toshok  <toshok@ximian.com>

In System.Windows.Forms.X11Internal:
* X11Hwnd.cs: implement GetWindowTransparency, and also add
caching for WINDOW_TYPE and _NET_WM_WINDOW_OPACITY.  We invalidate
the cache when we get a PropertyNotify on that atom.

* X11Display.cs: return GetSet from SupportsTransparency if we
have a compositor running.  otherwise return None.

* XplatUIX11-new.cs: pass SupportsTransparency off onto the
X11Display, and pass GetWindowTransparency off onto the X11Hwnd.

2006-11-29  Chris Toshok  <toshok@ximian.com>

svn path=/trunk/mcs/; revision=68722
12 files changed:
mcs/class/Managed.Windows.Forms/System.Windows.Forms.X11Internal/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms.X11Internal/X11Display.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms.X11Internal/X11Hwnd.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms.X11Internal/XplatUIX11-new.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/Form.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIOSX.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIStructs.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs