Fix handle capture in ActivateWindowDelayed

This commit is contained in:
Ilya Fedin 2022-09-07 16:11:46 +04:00 committed by John Preston
parent 12b8b3804c
commit 4d2fc25d03

View file

@ -67,13 +67,13 @@ void ActivateWindowDelayed(not_null<QWidget*> widget) {
return gsl::finally(Fn<void()>([] {})); return gsl::finally(Fn<void()>([] {}));
} }
const auto handle = window->windowHandle(); const auto handle = window->windowHandle();
if (!(handle->flags() & Qt::X11BypassWindowManagerHint)) { if (handle->flags() & Qt::X11BypassWindowManagerHint) {
return gsl::finally(Fn<void()>([] {}));
}
handle->setFlag(Qt::X11BypassWindowManagerHint); handle->setFlag(Qt::X11BypassWindowManagerHint);
return gsl::finally(Fn<void()>([&] { return gsl::finally(Fn<void()>([handle] {
handle->setFlag(Qt::X11BypassWindowManagerHint, false); handle->setFlag(Qt::X11BypassWindowManagerHint, false);
})); }));
}
return gsl::finally(Fn<void()>([] {}));
}(); }();
window->raise(); window->raise();
window->activateWindow(); window->activateWindow();