Create X11Compositor in main_x11.cpp

This makes X11Compositor initialization similar to the initialization of
the wayland compositor.
This commit is contained in:
Vlad Zahorodnii 2023-09-19 11:56:13 +03:00
parent dba29ece4b
commit f633bd1ff4
2 changed files with 4 additions and 8 deletions

View file

@ -13,6 +13,7 @@
#include <config-kwin.h>
#include "backends/x11/standalone/x11_standalone_backend.h"
#include "compositor_x11.h"
#include "core/outputbackend.h"
#include "core/session.h"
#include "cursor.h"
@ -181,9 +182,9 @@ ApplicationX11::~ApplicationX11()
{
setTerminating();
destroyPlugins();
destroyCompositor();
destroyColorManager();
destroyWorkspace();
destroyCompositor();
// If there was no --replace (no new WM)
if (owner != nullptr && owner->ownerWindow() != XCB_WINDOW_NONE) {
Xcb::setInputFocus(XCB_INPUT_FOCUS_POINTER_ROOT);
@ -238,9 +239,9 @@ void ApplicationX11::lostSelection()
{
sendPostedEvents();
destroyPlugins();
destroyCompositor();
destroyColorManager();
destroyWorkspace();
destroyCompositor();
// Remove windowmanager privileges
Xcb::selectInput(kwinApp()->x11RootWindow(), XCB_EVENT_MASK_PROPERTY_CHANGE);
removeNativeX11EventFilter();
@ -291,6 +292,7 @@ void ApplicationX11::performStartup()
});
createInput();
X11Compositor::create(this);
createWorkspace();
createColorManager();
createPlugins();

View file

@ -20,7 +20,6 @@
#endif
#include "appmenu.h"
#include "atoms.h"
#include "compositor_x11.h"
#include "core/outputbackend.h"
#include "core/outputconfiguration.h"
#include "cursor.h"
@ -164,11 +163,6 @@ Workspace::Workspace()
m_tabbox = std::make_unique<TabBox::TabBox>();
#endif
if (!Compositor::self()) {
Q_ASSERT(kwinApp()->operationMode() == Application::OperationMode::OperationModeX11);
X11Compositor::create(this);
}
m_decorationBridge = std::make_unique<Decoration::DecorationBridge>();
m_decorationBridge->init();
connect(this, &Workspace::configChanged, m_decorationBridge.get(), &Decoration::DecorationBridge::reconfigure);