Skip to content

Commit

Permalink
scripting: Make KWin.registerWindow() noop on wayland
Browse files Browse the repository at this point in the history
On Wayland, windows properly update if they are remapped.
  • Loading branch information
zzag committed Feb 18, 2023
1 parent 9b14930 commit 96fdc9d
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions src/scripting/scripting.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -614,14 +614,17 @@ QVariant KWin::JSEngineGlobalMethodsWrapper::readConfig(const QString &key, QVar

void KWin::JSEngineGlobalMethodsWrapper::registerWindow(QQuickWindow *window)
{
QPointer<QQuickWindow> guard = window;
connect(
window, &QWindow::visibilityChanged, this, [guard](QWindow::Visibility visibility) {
if (guard && visibility == QWindow::Hidden) {
guard->destroy();
}
},
Qt::QueuedConnection);
if (kwinApp()->operationMode() == Application::OperationModeX11) {
// Windows stop updating if they are remapped. It seems like a bug in QtXCB.
QPointer<QQuickWindow> guard = window;
connect(
window, &QWindow::visibilityChanged, this, [guard](QWindow::Visibility visibility) {
if (guard && visibility == QWindow::Hidden) {
guard->destroy();
}
},
Qt::QueuedConnection);
}
}

bool KWin::JSEngineGlobalMethodsWrapper::registerShortcut(const QString &name, const QString &text, const QKeySequence &keys, QJSValue function)
Expand Down

0 comments on commit 96fdc9d

Please sign in to comment.