From 21c3f10e28dc1c3aafe20e84fbe816cf288589ec Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Thu, 30 Dec 2021 11:49:04 -0800 Subject: [PATCH] Don't use gdk_window_set_composited() on toplevel windows Or try to paint their contents onto a parent toplevel. From the GDK doc: "It only makes sense for child windows to be composited". See #18592 --- src/gtk/window.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index cb7ae93102..d4f1a25c79 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -2353,7 +2353,7 @@ void wxWindowGTK::GTKHandleRealized() if (IsTransparentBackgroundSupported()) { wxGCC_WARNING_SUPPRESS(deprecated-declarations) - if (window) + if (window && !IsTopLevel()) gdk_window_set_composited(window, true); wxGCC_WARNING_RESTORE() } @@ -5339,7 +5339,8 @@ void wxWindowGTK::GTKSendPaintEvents(const GdkRegion* region) for ( node = m_children.GetFirst(); node ; node = node->GetNext() ) { wxWindow *compositeChild = node->GetData(); - if (compositeChild->GetBackgroundStyle() == wxBG_STYLE_TRANSPARENT) + if (compositeChild->GetBackgroundStyle() == wxBG_STYLE_TRANSPARENT && + !compositeChild->IsTopLevel()) { #ifndef __WXGTK3__ if (cr == NULL)