From 3be15aa3233e746bd3909cec31950754badc695a Mon Sep 17 00:00:00 2001 From: malwrar Date: Sun, 25 Oct 2020 18:40:33 -0700 Subject: [PATCH 1/4] Add Xcomposite bindings. --- src/xcomposite.rs | 43 ++++++++++++++++++++++++++++++++++++++++ x11-dl/Cargo.toml | 2 +- x11-dl/build.rs | 1 + x11-dl/src/lib.rs | 1 + x11-dl/src/xcomposite.rs | 1 + x11/Cargo.toml | 3 ++- x11/build.rs | 1 + x11/src/lib.rs | 1 + x11/src/xcomposite.rs | 1 + 9 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/xcomposite.rs create mode 120000 x11-dl/src/xcomposite.rs create mode 120000 x11/src/xcomposite.rs diff --git a/src/xcomposite.rs b/src/xcomposite.rs new file mode 100644 index 0000000..dd7c68b --- /dev/null +++ b/src/xcomposite.rs @@ -0,0 +1,43 @@ +// x11-rs: Rust bindings for X11 libraries +// The X11 libraries are available under the MIT license. +// These bindings are public domain. + +use std::os::raw::{ + c_int, +}; + +use ::xlib::{ + Bool, + XID, + Status, + Window, + Display, +}; + +// +// functions +// + +x11_link! { Xcomposite, xcomposite, ["libXcomposite.so.1", "libXcomposite.so"], 11, + pub fn XCompositeQueryExtension(_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> Bool, + pub fn XCompositeQueryVersion(_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> Status, + pub fn XCompositeVersion() -> c_int, + pub fn XCompositeRedirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeRedirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompisiteUnredirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompisiteUnredirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompisiteCreateRegionFromBorderClip(_2: *mut Display, _1: Window) -> XserverRegion, + pub fn XCompositeNameWindowPixmap(_2: *mut Display, _1: Window) -> Pixmap, + pub fn XCompositeGetOverlayWindow(_2: *mut Display, _1: Window) -> Window, + pub fn XCompisiteReleaseOverlayWindow(_2: *mut Display, _1: Window) -> (), +variadic: +globals: +} + + +// +// types +// + +pub type XserverRegion = XID; +pub type Pixmap = XID; diff --git a/x11-dl/Cargo.toml b/x11-dl/Cargo.toml index 4271fa0..32cd2c5 100644 --- a/x11-dl/Cargo.toml +++ b/x11-dl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "x11-dl" -version = "2.18.5" +version = "2.18.6" authors = [ "daggerbot ", "Erle Pereira ", diff --git a/x11-dl/build.rs b/x11-dl/build.rs index 63cc7d6..2a93f90 100644 --- a/x11-dl/build.rs +++ b/x11-dl/build.rs @@ -14,6 +14,7 @@ fn main() { // lib pkgconfig name ("xext", "xext"), ("gl", "gl"), + ("xcomposite", "xcomposite"), ("xcursor", "xcursor"), ("xxf86vm", "xxf86vm"), ("xft", "xft"), diff --git a/x11-dl/src/lib.rs b/x11-dl/src/lib.rs index 65a89e6..264a8d6 100644 --- a/x11-dl/src/lib.rs +++ b/x11-dl/src/lib.rs @@ -24,6 +24,7 @@ pub mod xlib; pub mod dpms; pub mod glx; pub mod keysym; +pub mod xcomposite; pub mod xcursor; pub mod xf86vmode; pub mod xfixes; diff --git a/x11-dl/src/xcomposite.rs b/x11-dl/src/xcomposite.rs new file mode 120000 index 0000000..d1acfd2 --- /dev/null +++ b/x11-dl/src/xcomposite.rs @@ -0,0 +1 @@ +../../src/xcomposite.rs \ No newline at end of file diff --git a/x11/Cargo.toml b/x11/Cargo.toml index 06edfd0..bc152f7 100644 --- a/x11/Cargo.toml +++ b/x11/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "x11" -version = "2.18.2" +version = "2.18.3" authors = [ "daggerbot ", "Erle Pereira ", @@ -15,6 +15,7 @@ workspace = ".." [features] dpms = [] glx = [] +xcomposite = [] xcursor = [] xf86vmode = [] xft = [] diff --git a/x11/build.rs b/x11/build.rs index db3117d..cc92752 100644 --- a/x11/build.rs +++ b/x11/build.rs @@ -13,6 +13,7 @@ fn main () { ("gl", "1", "glx"), ("x11", "1.4.99.1", "xlib"), ("x11-xcb", "1.6", "xlib_xcb"), + ("xcomposite", "0.4.5", "xcomposite"), ("xcursor", "1.1", "xcursor"), ("xext", "1.3", "dpms"), ("xft", "2.1", "xft"), diff --git a/x11/src/lib.rs b/x11/src/lib.rs index f31ccb0..e47fa93 100644 --- a/x11/src/lib.rs +++ b/x11/src/lib.rs @@ -19,6 +19,7 @@ pub mod xlib; pub mod dpms; pub mod glx; pub mod keysym; +pub mod xcomposite; pub mod xcursor; pub mod xf86vmode; pub mod xfixes; diff --git a/x11/src/xcomposite.rs b/x11/src/xcomposite.rs new file mode 120000 index 0000000..d1acfd2 --- /dev/null +++ b/x11/src/xcomposite.rs @@ -0,0 +1 @@ +../../src/xcomposite.rs \ No newline at end of file From d119797bd0261e5259348c3b932d8419a8ffc4f6 Mon Sep 17 00:00:00 2001 From: malwrar Date: Mon, 26 Oct 2020 20:04:40 -0700 Subject: [PATCH 2/4] Add Xcomposite constants. --- src/xcomposite.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/xcomposite.rs b/src/xcomposite.rs index dd7c68b..e1456fb 100644 --- a/src/xcomposite.rs +++ b/src/xcomposite.rs @@ -14,6 +14,7 @@ use ::xlib::{ Display, }; + // // functions // @@ -41,3 +42,11 @@ globals: pub type XserverRegion = XID; pub type Pixmap = XID; + + +// +// constants +// + +pub const CompositeRedirectAutomatic: c_int = 0; +pub const CompositeRedirectManual: c_int = 1; From 1f0616a902bc5d2f72a115d005a379c4416cbde1 Mon Sep 17 00:00:00 2001 From: malwrar Date: Thu, 14 Jan 2021 16:36:30 -0800 Subject: [PATCH 3/4] Fix typo. --- src/xcomposite.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xcomposite.rs b/src/xcomposite.rs index e1456fb..d04d684 100644 --- a/src/xcomposite.rs +++ b/src/xcomposite.rs @@ -30,7 +30,7 @@ x11_link! { Xcomposite, xcomposite, ["libXcomposite.so.1", "libXcomposite.so"], pub fn XCompisiteCreateRegionFromBorderClip(_2: *mut Display, _1: Window) -> XserverRegion, pub fn XCompositeNameWindowPixmap(_2: *mut Display, _1: Window) -> Pixmap, pub fn XCompositeGetOverlayWindow(_2: *mut Display, _1: Window) -> Window, - pub fn XCompisiteReleaseOverlayWindow(_2: *mut Display, _1: Window) -> (), + pub fn XCompositeReleaseOverlayWindow(_2: *mut Display, _1: Window) -> (), variadic: globals: } From 345a5ebdbf10494d1402d6dcf06b911d00cd2b2c Mon Sep 17 00:00:00 2001 From: malwrar Date: Mon, 25 Jan 2021 12:55:57 -0800 Subject: [PATCH 4/4] Fix typo, unneeded type definition. --- src/xcomposite.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/xcomposite.rs b/src/xcomposite.rs index d04d684..50630c9 100644 --- a/src/xcomposite.rs +++ b/src/xcomposite.rs @@ -12,6 +12,7 @@ use ::xlib::{ Status, Window, Display, + Pixmap }; @@ -25,9 +26,9 @@ x11_link! { Xcomposite, xcomposite, ["libXcomposite.so.1", "libXcomposite.so"], pub fn XCompositeVersion() -> c_int, pub fn XCompositeRedirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), pub fn XCompositeRedirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), - pub fn XCompisiteUnredirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), - pub fn XCompisiteUnredirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), - pub fn XCompisiteCreateRegionFromBorderClip(_2: *mut Display, _1: Window) -> XserverRegion, + pub fn XCompositeUnredirectWindow(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeUnredirectSubwindows(_3: *mut Display, _2: Window, _1: c_int) -> (), + pub fn XCompositeCreateRegionFromBorderClip(_2: *mut Display, _1: Window) -> XserverRegion, pub fn XCompositeNameWindowPixmap(_2: *mut Display, _1: Window) -> Pixmap, pub fn XCompositeGetOverlayWindow(_2: *mut Display, _1: Window) -> Window, pub fn XCompositeReleaseOverlayWindow(_2: *mut Display, _1: Window) -> (), @@ -41,7 +42,6 @@ globals: // pub type XserverRegion = XID; -pub type Pixmap = XID; //