use gtk_window_set_opacity() in SetTransparent() when GTK >= 2.12

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2014-04-15 16:07:44 +00:00
parent dc9ace761f
commit 07b1a1d6a0

View File

@@ -1519,17 +1519,26 @@ void wxTopLevelWindowGTK::SetWindowStyleFlag( long style )
bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
{
GdkWindow* window = NULL;
if (m_widget)
window = gtk_widget_get_window(m_widget);
if (m_widget == NULL)
return false;
#if GTK_CHECK_VERSION(2,12,0)
#ifndef __WXGTK3__
if (gtk_check_version(2,12,0) == NULL)
#endif
{
gtk_window_set_opacity(GTK_WINDOW(m_widget), alpha / 255.0);
return true;
}
#endif // GTK_CHECK_VERSION(2,12,0)
#ifndef __WXGTK3__
#ifdef GDK_WINDOWING_X11
GdkWindow* window = gtk_widget_get_window(m_widget);
if (window == NULL)
return false;
#ifdef GDK_WINDOWING_X11
Display* dpy = GDK_WINDOW_XDISPLAY(window);
Window win = GDK_WINDOW_XID(window);
// Using pure Xlib to not have a GTK version check mess due to gtk2.0 not having GdkDisplay
if (alpha == 0xff)
XDeleteProperty(dpy, win, XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False));
else
@@ -1544,6 +1553,7 @@ bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
#else // !GDK_WINDOWING_X11
return false;
#endif // GDK_WINDOWING_X11 / !GDK_WINDOWING_X11
#endif // !__WXGTK3__
}
bool wxTopLevelWindowGTK::CanSetTransparent()