implement close
All checks were successful
pyrite-dev/milsko/pipeline/head This commit looks good

This commit is contained in:
Nishi 2026-04-29 05:39:47 +09:00
commit 8d6c2c0d52
2 changed files with 18 additions and 0 deletions

View file

@ -58,6 +58,8 @@ class MwWindow : public BWindow {
MwWindow(BRect rc, window_type type, uint32 flags);
void MessageReceived(BMessage* message);
bool QuitRequested();
};
typedef BBitmap MwBBitmap;
@ -93,6 +95,7 @@ enum BWIN_MW_WHAT {
enum MwLLHAIKU_EVENT {
MwLLHAIKU_EVENT_DRAW = 0,
MwLLHAIKU_EVENT_CLOSE,
MwLLHAIKU_EVENT_MOUSEDOWN,
MwLLHAIKU_EVENT_MOUSEUP,
MwLLHAIKU_EVENT_MOUSEMOVED

View file

@ -324,6 +324,19 @@ void MwWindow::MessageReceived(BMessage* message) {
}
}
bool MwWindow::QuitRequested() {
MwLLHaikuEvent ev;
MwView* v = (MwView*)this->ChildAt(0);
ev.type = MwLLHAIKU_EVENT_CLOSE;
v->locker->Lock();
arrput(v->handle->haiku.events, ev);
v->locker->Unlock();
return false;
}
struct app_param {
MwRect rc;
MwLL handle;
@ -530,6 +543,8 @@ void MwLLNextEventImpl(MwLL handle) {
if(ev->type == MwLLHAIKU_EVENT_DRAW) {
MwLLDispatch(handle, draw, NULL);
} else if(ev->type == MwLLHAIKU_EVENT_CLOSE) {
MwLLDispatch(handle, close, NULL);
} else if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN) {
MwLLDispatch(handle, down, &m);
} else if(ev->type == MwLLHAIKU_EVENT_MOUSEUP) {