From 5764b9c243e0c1732fdce186e4de4e34540b95e3 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Mon, 28 Jul 2014 13:16:55 +0200 Subject: Implement resize events on X11 --- src/x11/ffi.rs | 11 +++++++++++ src/x11/mod.rs | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/src/x11/ffi.rs b/src/x11/ffi.rs index b636b99..5caabc5 100644 --- a/src/x11/ffi.rs +++ b/src/x11/ffi.rs @@ -241,6 +241,17 @@ pub struct XClientMessageEvent { pub l: [libc::c_long, ..5], } +#[reprc(C)] +pub struct XResizeRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: Bool, + pub display: *mut Display, + pub window: Window, + pub width: libc::c_int, + pub height: libc::c_int, +} + #[link(name = "GL")] #[link(name = "X11")] extern "C" { diff --git a/src/x11/mod.rs b/src/x11/mod.rs index 1c91e2d..3f17ca4 100644 --- a/src/x11/mod.rs +++ b/src/x11/mod.rs @@ -162,6 +162,12 @@ impl Window { } }, + ffi::ResizeRequest => { + use SizeChanged; + let rs_event: &ffi::XResizeRequestEvent = unsafe { mem::transmute(&xev) }; + events.push(SizeChanged(rs_event.width as uint, rs_event.height as uint)); + }, + _ => () } -- cgit v1.2.3