Fix crash in theme editor closing.

This commit is contained in:
John Preston 2020-06-05 14:00:06 +04:00
parent 6c2a29b83f
commit 05df4f832b
2 changed files with 5 additions and 5 deletions

View File

@ -702,20 +702,20 @@ void Editor::showMenu() {
if (_menu) {
return;
}
_menu.create(this);
_menu->setHiddenCallback([weak = Ui::MakeWeak(this), menu = _menu.data()]{
_menu = base::make_unique_q<Ui::DropdownMenu>(this);
_menu->setHiddenCallback([weak = Ui::MakeWeak(this), menu = _menu.get()]{
menu->deleteLater();
if (weak && weak->_menu == menu) {
weak->_menu = nullptr;
weak->_menuToggle->setForceRippled(false);
}
});
_menu->setShowStartCallback(crl::guard(this, [this, menu = _menu.data()]{
_menu->setShowStartCallback(crl::guard(this, [this, menu = _menu.get()]{
if (_menu == menu) {
_menuToggle->setForceRippled(true);
}
}));
_menu->setHideStartCallback(crl::guard(this, [this, menu = _menu.data()]{
_menu->setHideStartCallback(crl::guard(this, [this, menu = _menu.get()]{
if (_menu == menu) {
_menuToggle->setForceRippled(false);
}

View File

@ -80,7 +80,7 @@ private:
QPointer<Inner> _inner;
object_ptr<Ui::CrossButton> _close;
object_ptr<Ui::IconButton> _menuToggle;
object_ptr<Ui::DropdownMenu> _menu = { nullptr };
base::unique_qptr<Ui::DropdownMenu> _menu;
object_ptr<Ui::MultiSelect> _select;
object_ptr<Ui::PlainShadow> _leftShadow;
object_ptr<Ui::PlainShadow> _topShadow;