diff options
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/DeleteLater.cpp | 8 | ||||
| -rw-r--r-- | src/ui/controls/TextHostControlService.cpp | 4 | ||||
| -rw-r--r-- | src/ui/host/WindowHost.cpp | 1 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/ui/DeleteLater.cpp b/src/ui/DeleteLater.cpp index f8911ae1..499b9b34 100644 --- a/src/ui/DeleteLater.cpp +++ b/src/ui/DeleteLater.cpp @@ -4,10 +4,16 @@ #include "cru/platform/gui/UiApplication.h" namespace cru::ui { + +DeleteLaterImpl::DeleteLaterImpl() : delete_later_scheduled_(false) {} + DeleteLaterImpl::~DeleteLaterImpl() {} void DeleteLaterImpl::DeleteLater() { - GetUiApplication()->SetImmediate([this] { delete this; }); + if (!delete_later_scheduled_) { + GetUiApplication()->SetImmediate([this] { delete this; }); + delete_later_scheduled_ = true; + } } void DeleteLaterImpl::OnPrepareDelete() {} diff --git a/src/ui/controls/TextHostControlService.cpp b/src/ui/controls/TextHostControlService.cpp index 3c38c454..235e6e6a 100644 --- a/src/ui/controls/TextHostControlService.cpp +++ b/src/ui/controls/TextHostControlService.cpp @@ -150,8 +150,6 @@ std::vector<TextControlMovePattern> TextControlMovePattern::kDefaultPatterns = { TextHostControlService::TextHostControlService(Control* control) : control_(control), text_host_control_(dynamic_cast<ITextHostControl*>(control)) { - context_menu_ = MakeDeleteLaterPtr<components::PopupMenu>(); - SetUpShortcuts(); SetupOneHandler(&Control::MouseMoveEvent, @@ -701,7 +699,7 @@ void TextHostControlService::SetUpShortcuts() { void TextHostControlService::OpenContextMenu(const Point& position, ContextMenuItem items) { - context_menu_ = MakeDeleteLaterPtr<components::PopupMenu>(); + context_menu_ = MakeDeleteLater<components::PopupMenu>(); auto menu = context_menu_->GetMenu(); if (items & ContextMenuItem::kSelectAll) { menu->AddTextItem("Select All", [this] { this->SelectAll(); }); diff --git a/src/ui/host/WindowHost.cpp b/src/ui/host/WindowHost.cpp index 7417740d..ec956bb4 100644 --- a/src/ui/host/WindowHost.cpp +++ b/src/ui/host/WindowHost.cpp @@ -4,7 +4,6 @@ #include "cru/base/Base.h" #include "cru/base/log/Logger.h" #include "cru/platform/graphics/Painter.h" -#include "cru/platform/gui/InputMethod.h" #include "cru/platform/gui/UiApplication.h" #include "cru/platform/gui/Window.h" #include "cru/ui/Base.h" |
