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)
|
bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
|
||||||
{
|
{
|
||||||
GdkWindow* window = NULL;
|
if (m_widget == NULL)
|
||||||
if (m_widget)
|
return false;
|
||||||
window = gtk_widget_get_window(m_widget);
|
#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)
|
if (window == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#ifdef GDK_WINDOWING_X11
|
|
||||||
Display* dpy = GDK_WINDOW_XDISPLAY(window);
|
Display* dpy = GDK_WINDOW_XDISPLAY(window);
|
||||||
Window win = GDK_WINDOW_XID(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)
|
if (alpha == 0xff)
|
||||||
XDeleteProperty(dpy, win, XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False));
|
XDeleteProperty(dpy, win, XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False));
|
||||||
else
|
else
|
||||||
@@ -1544,6 +1553,7 @@ bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
|
|||||||
#else // !GDK_WINDOWING_X11
|
#else // !GDK_WINDOWING_X11
|
||||||
return false;
|
return false;
|
||||||
#endif // GDK_WINDOWING_X11 / !GDK_WINDOWING_X11
|
#endif // GDK_WINDOWING_X11 / !GDK_WINDOWING_X11
|
||||||
|
#endif // !__WXGTK3__
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTopLevelWindowGTK::CanSetTransparent()
|
bool wxTopLevelWindowGTK::CanSetTransparent()
|
||||||
|
Reference in New Issue
Block a user