diff options
Diffstat (limited to 'src/os')
-rw-r--r-- | src/os/unix.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/os/unix.rs b/src/os/unix.rs index 61c89bc..0d89571 100644 --- a/src/os/unix.rs +++ b/src/os/unix.rs @@ -1,5 +1,7 @@ #![cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd"))] +use std::os::raw::c_ulong; + use libc; use Window; use platform::Window as LinuxWindow; @@ -41,9 +43,16 @@ impl WindowExt for Window { } /// Additional methods on `WindowBuilder` that are specific to Unix. -pub trait WindowBuilderExt { - +pub trait WindowBuilderExt<'a> { + fn from_existing_window(mut self, window_id: c_ulong) -> WindowBuilder<'a>; } -impl<'a> WindowBuilderExt for WindowBuilder<'a> { +impl<'a> WindowBuilderExt<'a> for WindowBuilder<'a> { + + /// Tells this (UNIX/X11) WindowBuilder to use an existing X window (eg, + /// one created by another application) instead of creating a new window. + fn from_existing_window(mut self, window_id: c_ulong) -> WindowBuilder<'a> { + self.platform_specific.existing_x11_window_id = Some(window_id); + self + } } |