aboutsummaryrefslogtreecommitdiff
path: root/src/platform/gui/sdl/Window.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-28 18:46:52 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-28 18:46:52 +0800
commitfa9e88a3a753de0f7a33efcf6a2671c28f099ba3 (patch)
treea0836203b9d178ff6cd1cf0acb3620852d7566ac /src/platform/gui/sdl/Window.cpp
parent9e596ff10782455615f69b9b54ce22176145b020 (diff)
downloadcru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.tar.gz
cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.tar.bz2
cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.zip
sdl add event dispatch logic.
Diffstat (limited to 'src/platform/gui/sdl/Window.cpp')
-rw-r--r--src/platform/gui/sdl/Window.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/platform/gui/sdl/Window.cpp b/src/platform/gui/sdl/Window.cpp
index b0fcded4..3ab8cf4d 100644
--- a/src/platform/gui/sdl/Window.cpp
+++ b/src/platform/gui/sdl/Window.cpp
@@ -18,6 +18,8 @@ namespace cru::platform::gui::sdl {
SdlWindow::SdlWindow(SdlUiApplication* application)
: application_(application),
+ sdl_window_(nullptr),
+ sdl_window_id_(0),
client_rect_(100, 100, 400, 200),
parent_(nullptr) {
application->RegisterWindow(this);
@@ -214,6 +216,11 @@ void SdlWindow::DoCreateWindow() {
throw SdlException("Failed to create window.");
}
+ sdl_window_id_ = SDL_GetWindowID(sdl_window_);
+ if (sdl_window_id_ == 0) {
+ throw SdlException("Failed to get ID of created window.");
+ }
+
CreateEvent_.Raise(nullptr);
CheckSdlReturn(
@@ -309,6 +316,7 @@ bool SdlWindow::HandleEvent(const SDL_Event* event) {
VisibilityChangeEvent_.Raise(WindowVisibilityType::Hide);
DestroyEvent_.Raise(nullptr);
sdl_window_ = nullptr;
+ sdl_window_id_ = 0;
return true;
}
case SDL_EVENT_MOUSE_BUTTON_DOWN: {