diff --git a/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.cpp b/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.cpp index badc437ee..c69fa3f14 100644 --- a/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.cpp +++ b/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.cpp @@ -20,6 +20,13 @@ SettingsButtonWidget::SettingsButtonWidget(QWidget *parent) setLayout(layout); } +SettingsButtonWidget::~SettingsButtonWidget() +{ + // We don't parent the popup because it might lead to better behavior on certain window managers. + // So we have to manually delete it + popup->deleteLater(); +} + void SettingsButtonWidget::addSettingsWidget(QWidget *toAdd) const { popup->addSettingsWidget(toAdd); diff --git a/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.h b/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.h index 5dcbe059a..1dc52ac72 100644 --- a/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.h +++ b/cockatrice/src/interface/widgets/quick_settings/settings_button_widget.h @@ -19,6 +19,9 @@ class SettingsButtonWidget : public QWidget public: explicit SettingsButtonWidget(QWidget *parent = nullptr); + + ~SettingsButtonWidget() override; + void addSettingsWidget(QWidget *toAdd) const; void removeSettingsWidget(QWidget *toRemove) const; void setButtonIcon(QPixmap iconMap);