Skip to content

Commit

Permalink
Merge pull request #57 from meilinxiaoxue/master
Browse files Browse the repository at this point in the history
add handler for WM_CLOSE
  • Loading branch information
RMichelsen committed Sep 5, 2022
2 parents dda84bd + 64e2a6a commit b7cbd3d
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,9 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
case WM_KILLFOCUS: {
NvimKillFocus(context->nvim);
} return 0;
case WM_CLOSE : {
NvimQuit(context->nvim);
} return 0;
}

return DefWindowProc(hwnd, msg, wparam, lparam);
Expand Down
14 changes: 14 additions & 0 deletions src/nvim/nvim.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -612,3 +612,17 @@ void NvimKillFocus(Nvim *nvim) {
size_t size = MPackFinishMessage(&writer);
MPackSendData(nvim->stdin_write, data, size);
}
void NvimQuit(Nvim *nvim)
{
const char *quit_command = "qa";

char data[MAX_MPACK_OUTBOUND_MESSAGE_SIZE];
mpack_writer_t writer;
mpack_writer_init(&writer, data, MAX_MPACK_OUTBOUND_MESSAGE_SIZE);
MPackStartRequest(RegisterRequest(nvim, nvim_command), NVIM_REQUEST_NAMES[nvim_command], &writer);
mpack_start_array(&writer, 1);
mpack_write_cstr(&writer, quit_command);
mpack_finish_array(&writer);
size_t size = MPackFinishMessage(&writer);
MPackSendData(nvim->stdin_write, data, size);
}
3 changes: 2 additions & 1 deletion src/nvim/nvim.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,5 @@ void NvimSendMouseInput(Nvim *nvim, MouseButton button, MouseAction action, int
bool NvimProcessKeyDown(Nvim *nvim, int virtual_key);
void NvimOpenFile(Nvim *nvim, const wchar_t *file_name);
void NvimSetFocus(Nvim *nvim);
void NvimKillFocus(Nvim *nvim);
void NvimKillFocus(Nvim *nvim);
void NvimQuit(Nvim *nvim);

0 comments on commit b7cbd3d

Please sign in to comment.