Remove redundant window propagation

If a wayland window is added, we don't need to propagate that to X11.
This commit is contained in:
Vlad Zahorodnii 2022-05-12 15:26:48 +03:00
parent 0489d4a2f6
commit 89b35c3238
2 changed files with 12 additions and 12 deletions

View file

@ -154,13 +154,6 @@ bool Workspace::workspaceEvent(xcb_generic_event_t *e)
return false; // let Qt process it, it'll be intercepted again in eventFilter()
}
if (eventType == XCB_CONFIGURE_NOTIFY) {
const auto configureNotifyEvent = reinterpret_cast<xcb_configure_notify_event_t *>(e);
if (configureNotifyEvent->override_redirect && configureNotifyEvent->event == kwinApp()->x11RootWindow()) {
updateXStackingOrder();
}
}
const xcb_window_t eventWindow = findEventWindow(e);
if (eventWindow != XCB_WINDOW_NONE) {
if (X11Window *window = findClient(Predicate::WindowMatch, eventWindow)) {
@ -281,6 +274,13 @@ bool Workspace::workspaceEvent(xcb_generic_event_t *e)
}
break;
}
case XCB_CONFIGURE_NOTIFY: {
const auto configureNotifyEvent = reinterpret_cast<xcb_configure_notify_event_t *>(e);
if (configureNotifyEvent->override_redirect && configureNotifyEvent->event == kwinApp()->x11RootWindow()) {
updateXStackingOrder();
}
break;
}
case XCB_FOCUS_IN: {
const auto *event = reinterpret_cast<xcb_focus_in_event_t *>(e);
if (event->event == kwinApp()->x11RootWindow()

View file

@ -796,7 +796,7 @@ void Workspace::addWaylandWindow(Window *window)
m_allClients.append(window);
addToStack(window);
updateStackingOrder(true);
updateStackingOrder();
updateClientArea();
if (window->wantsInput() && !window->isMinimized()) {
activateWindow(window);
@ -804,7 +804,7 @@ void Workspace::addWaylandWindow(Window *window)
updateTabbox();
connect(window, &Window::windowShown, this, [this, window] {
window->updateLayer();
updateStackingOrder(true);
updateStackingOrder();
updateClientArea();
if (window->wantsInput()) {
activateWindow(window);
@ -812,7 +812,7 @@ void Workspace::addWaylandWindow(Window *window)
});
connect(window, &Window::windowHidden, this, [this] {
// TODO: update tabbox if it's displayed
updateStackingOrder(true);
updateStackingOrder();
updateClientArea();
});
Q_EMIT windowAdded(window);
@ -1912,7 +1912,7 @@ void Workspace::addInternalWindow(InternalWindow *window)
Placement::self()->place(window, area);
}
updateStackingOrder(true);
updateStackingOrder();
updateClientArea();
Q_EMIT internalWindowAdded(window);
@ -1922,7 +1922,7 @@ void Workspace::removeInternalWindow(InternalWindow *window)
{
m_internalWindows.removeOne(window);
updateStackingOrder(true);
updateStackingOrder();
updateClientArea();
Q_EMIT internalWindowRemoved(window);