diff --git a/src/ui/int_entry.cpp b/src/ui/int_entry.cpp index b21c54d12..813beb10d 100644 --- a/src/ui/int_entry.cpp +++ b/src/ui/int_entry.cpp @@ -171,7 +171,7 @@ void IntEntry::openPopup() { m_slider.setValue(getValue()); - m_popupWindow = new TransparentPopupWindow(PopupWindow::ClickBehavior::CloseOnClickInOtherWindow); + m_popupWindow = std::make_unique(PopupWindow::ClickBehavior::CloseOnClickInOtherWindow); m_popupWindow->setAutoRemap(false); m_popupWindow->addChild(&m_slider); m_popupWindow->Close.connect(&IntEntry::onPopupClose, this); @@ -200,8 +200,7 @@ void IntEntry::closePopup() removeSlider(); m_popupWindow->closeWindow(nullptr); - delete m_popupWindow; - m_popupWindow = nullptr; + m_popupWindow.reset(); } } @@ -223,7 +222,7 @@ void IntEntry::onPopupClose(CloseEvent& ev) void IntEntry::removeSlider() { if (m_popupWindow && - m_slider.parent() == m_popupWindow) { + m_slider.parent() == m_popupWindow.get()) { m_popupWindow->removeChild(&m_slider); } } diff --git a/src/ui/int_entry.h b/src/ui/int_entry.h index 31736b9c8..7e64332f3 100644 --- a/src/ui/int_entry.h +++ b/src/ui/int_entry.h @@ -1,4 +1,5 @@ // Aseprite UI Library +// Copyright (C) 2022 Igara Studio S.A. // Copyright (C) 2001-2017 David Capello // // This file is released under the terms of the MIT license. @@ -11,6 +12,8 @@ #include "ui/entry.h" #include "ui/slider.h" +#include + namespace ui { class CloseEvent; @@ -43,7 +46,7 @@ namespace ui { int m_min; int m_max; Slider m_slider; - PopupWindow* m_popupWindow; + std::unique_ptr m_popupWindow; bool m_changeFromSlider; };