From 0880fec9c7b2382f827da2492ac6aaf2b3463839 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Tue, 19 Sep 2023 20:50:21 +0300 Subject: [PATCH] Make Window::updateShadow() agnostic about compositing status The Shadow no longer owns the texture, so it can be loaded while compositing is off. This changes removes the compositing status check to simplify code. --- src/internalwindow.cpp | 1 + src/window.cpp | 5 ----- src/x11window.cpp | 2 ++ 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/internalwindow.cpp b/src/internalwindow.cpp index cc1b3da27c..9995701bc1 100644 --- a/src/internalwindow.cpp +++ b/src/internalwindow.cpp @@ -49,6 +49,7 @@ InternalWindow::InternalWindow(QWindow *handle) setOpacity(m_handle->opacity()); setSkipCloseAnimation(m_handle->property(s_skipClosePropertyName).toBool()); updateColorScheme(); + updateShadow(); setMoveResizeGeometry(m_handle->geometry()); commitGeometry(m_handle->geometry()); diff --git a/src/window.cpp b/src/window.cpp index 5bdbeb79c6..bd3bbf454c 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -212,7 +212,6 @@ bool Window::setupCompositing() } m_effectWindow = std::make_unique(this); - updateShadow(); m_windowItem = createItem(scene); m_windowItem->setParentItem(scene->containerItem()); @@ -226,7 +225,6 @@ bool Window::setupCompositing() void Window::finishCompositing() { - m_shadow.reset(); m_effectWindow.reset(); m_windowItem.reset(); } @@ -271,9 +269,6 @@ Shadow *Window::shadow() const void Window::updateShadow() { - if (!Compositor::compositing()) { - return; - } if (m_shadow) { if (!m_shadow->updateShadow()) { m_shadow.reset(); diff --git a/src/x11window.cpp b/src/x11window.cpp index 2065473565..ba28c7ad1e 100644 --- a/src/x11window.cpp +++ b/src/x11window.cpp @@ -551,6 +551,7 @@ bool X11Window::track(xcb_window_t w) detectShape(); getWmOpaqueRegion(); getSkipCloseAnimation(); + updateShadow(); setupCompositing(); if (QWindow *internalWindow = findInternalWindow()) { m_outline = internalWindow->property("__kwin_outline").toBool(); @@ -673,6 +674,7 @@ bool X11Window::manage(xcb_window_t w, bool isMapped) getMotifHints(); getWmOpaqueRegion(); readSkipCloseAnimation(skipCloseAnimationCookie); + updateShadow(); // TODO: Try to obey all state information from info->state()