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:
@@ -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()
|
||||
|
Reference in New Issue
Block a user