aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/win32/ffi.rs2
-rw-r--r--src/win32/mod.rs12
2 files changed, 14 insertions, 0 deletions
diff --git a/src/win32/ffi.rs b/src/win32/ffi.rs
index cf853ea..0b47de8 100644
--- a/src/win32/ffi.rs
+++ b/src/win32/ffi.rs
@@ -305,12 +305,14 @@ pub static WM_COMMAND: UINT = 0x0111;
pub static WM_DESTROY: UINT = 0x0002;
pub static WM_KEYDOWN: UINT = 0x0100;
pub static WM_KEYUP: UINT = 0x0101;
+pub static WM_KILLFOCUS: UINT = 0x0008;
pub static WM_MBUTTONDOWN: UINT = 0x0207;
pub static WM_MBUTTONUP: UINT = 0x0208;
pub static WM_MOUSEMOVE: UINT = 0x0200;
pub static WM_PAINT: UINT = 0x000F;
pub static WM_RBUTTONDOWN: UINT = 0x0204;
pub static WM_RBUTTONUP: UINT = 0x0205;
+pub static WM_SETFOCUS: UINT = 0x0007;
pub static WM_SIZE: UINT = 0x0005;
pub static WM_SIZING: UINT = 0x0214;
diff --git a/src/win32/mod.rs b/src/win32/mod.rs
index d5a0820..959e141 100644
--- a/src/win32/mod.rs
+++ b/src/win32/mod.rs
@@ -395,6 +395,18 @@ extern "stdcall" fn callback(window: ffi::HWND, msg: ffi::UINT,
0
},
+ ffi::WM_SETFOCUS => {
+ use events::Focused;
+ send_event(window, Focused(true));
+ 0
+ },
+
+ ffi::WM_KILLFOCUS => {
+ use events::Focused;
+ send_event(window, Focused(false));
+ 0
+ },
+
_ => unsafe {
ffi::DefWindowProcW(window, msg, wparam, lparam)
}