diff options
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/DeleteLater.cpp | 7 | ||||
| -rw-r--r-- | src/ui/controls/Control.cpp | 5 | ||||
| -rw-r--r-- | src/ui/controls/TextHostControlService.cpp | 6 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/ui/DeleteLater.cpp b/src/ui/DeleteLater.cpp index 499b9b34..27ec2155 100644 --- a/src/ui/DeleteLater.cpp +++ b/src/ui/DeleteLater.cpp @@ -1,16 +1,21 @@ #include "cru/ui/DeleteLater.h" #include "Helper.h" +#include "cru/base/log/Logger.h" #include "cru/platform/gui/UiApplication.h" namespace cru::ui { DeleteLaterImpl::DeleteLaterImpl() : delete_later_scheduled_(false) {} -DeleteLaterImpl::~DeleteLaterImpl() {} +DeleteLaterImpl::~DeleteLaterImpl() { + CRU_LOG_TAG_DEBUG("Delete later object being deleted {}.", + static_cast<void*>(this)); +} void DeleteLaterImpl::DeleteLater() { if (!delete_later_scheduled_) { + CRU_LOG_TAG_DEBUG("Schedule delete later {}.", static_cast<void*>(this)); GetUiApplication()->SetImmediate([this] { delete this; }); delete_later_scheduled_ = true; } diff --git a/src/ui/controls/Control.cpp b/src/ui/controls/Control.cpp index 3218f185..14397fa7 100644 --- a/src/ui/controls/Control.cpp +++ b/src/ui/controls/Control.cpp @@ -1,10 +1,8 @@ #include "cru/ui/controls/Control.h" -#include "cru/base/log/Logger.h" #include "cru/platform/gui/Cursor.h" #include "cru/platform/gui/UiApplication.h" #include "cru/ui/host/WindowHost.h" -#include "cru/ui/render/RenderObject.h" #include "cru/ui/style/StyleRuleSet.h" namespace cru::ui::controls { @@ -30,8 +28,7 @@ Control::Control() { Control::~Control() { if (host::WindowHost::IsInEventHandling()) { - CRU_LOG_TAG_ERROR( - "Control destroyed during event handling. Please use DeleteLater."); + std::terminate(); } in_destruction_ = true; diff --git a/src/ui/controls/TextHostControlService.cpp b/src/ui/controls/TextHostControlService.cpp index 235e6e6a..f581d3c9 100644 --- a/src/ui/controls/TextHostControlService.cpp +++ b/src/ui/controls/TextHostControlService.cpp @@ -12,7 +12,6 @@ #include "cru/platform/gui/Window.h" #include "cru/ui/Base.h" #include "cru/ui/DebugFlags.h" -#include "cru/ui/DeleteLater.h" #include "cru/ui/components/Menu.h" #include "cru/ui/helper/ShortcutHub.h" #include "cru/ui/host/WindowHost.h" @@ -149,7 +148,8 @@ std::vector<TextControlMovePattern> TextControlMovePattern::kDefaultPatterns = { TextHostControlService::TextHostControlService(Control* control) : control_(control), - text_host_control_(dynamic_cast<ITextHostControl*>(control)) { + text_host_control_(dynamic_cast<ITextHostControl*>(control)), + context_menu_(new components::PopupMenu()) { SetUpShortcuts(); SetupOneHandler(&Control::MouseMoveEvent, @@ -699,7 +699,7 @@ void TextHostControlService::SetUpShortcuts() { void TextHostControlService::OpenContextMenu(const Point& position, ContextMenuItem items) { - context_menu_ = MakeDeleteLater<components::PopupMenu>(); + CRU_LOG_TAG_DEBUG("Open context menu."); auto menu = context_menu_->GetMenu(); if (items & ContextMenuItem::kSelectAll) { menu->AddTextItem("Select All", [this] { this->SelectAll(); }); |
