aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui/controls/TextControlService.hpp5
-rw-r--r--src/win/gui/Cursor.cpp5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ui/controls/TextControlService.hpp b/src/ui/controls/TextControlService.hpp
index 8ad95dec..92a66f5e 100644
--- a/src/ui/controls/TextControlService.hpp
+++ b/src/ui/controls/TextControlService.hpp
@@ -4,6 +4,7 @@
#include "cru/common/StringUtil.hpp"
#include "cru/platform/graphics/Font.hpp"
#include "cru/platform/graphics/Painter.hpp"
+#include "cru/platform/gui/Cursor.hpp"
#include "cru/platform/gui/InputMethod.hpp"
#include "cru/platform/gui/UiApplication.hpp"
#include "cru/platform/gui/Window.hpp"
@@ -50,10 +51,14 @@ class TextControlService : public Object {
if (this->caret_visible_) {
this->SetupCaret();
}
+ this->control_->SetCursor(
+ GetUiApplication()->GetCursorManager()->GetSystemCursor(
+ platform::gui::SystemCursorType::IBeam));
} else {
this->AbortSelection();
this->TearDownHandlers();
this->TearDownCaret();
+ this->control_->SetCursor(nullptr);
}
}
diff --git a/src/win/gui/Cursor.cpp b/src/win/gui/Cursor.cpp
index 5f3086fa..80e8a749 100644
--- a/src/win/gui/Cursor.cpp
+++ b/src/win/gui/Cursor.cpp
@@ -35,7 +35,8 @@ WinCursor* LoadWinCursor(const wchar_t* name) {
WinCursorManager::WinCursorManager()
: sys_arrow_(LoadWinCursor(IDC_ARROW)),
- sys_hand_(LoadWinCursor(IDC_HAND)) {}
+ sys_hand_(LoadWinCursor(IDC_HAND)),
+ sys_ibeam_(LoadWinCursor(IDC_IBEAM)) {}
std::shared_ptr<WinCursor> WinCursorManager::GetSystemWinCursor(
SystemCursorType type) {
@@ -44,6 +45,8 @@ std::shared_ptr<WinCursor> WinCursorManager::GetSystemWinCursor(
return sys_arrow_;
case SystemCursorType::Hand:
return sys_hand_;
+ case SystemCursorType::IBeam:
+ return sys_ibeam_;
default:
throw std::runtime_error("Unknown system cursor value.");
}