aboutsummaryrefslogtreecommitdiffstats
path: root/src/os/unix.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/unix.rs')
-rw-r--r--src/os/unix.rs15
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
+ }
}