From 1db92063d9403d45b04f24f72ad13cbd22b9dc43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20C=C3=B4rte-Real?= Date: Sat, 7 Oct 2017 20:20:37 +0100 Subject: [PATCH] Fix X11 on 32bit architectures (#311) * Add an i386 target to travis * Fix X11 on 32bit architectures One would hope 32bit X11 was dead by now but apparently not :). Fix the window hint setting code to not assume window IDs are 64bit as apparently they are not in 32bit arches. --- .travis.yml | 5 +++++ CHANGELOG.md | 1 + src/platform/linux/x11/window.rs | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 673896b8..51fdd7be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,10 +12,15 @@ install: if [ $TRAVIS_OS_NAME = osx ]; then rustup target add x86_64-apple-ios fi + - | + if [ $TRAVIS_OS_NAME = linux ]; then + rustup target add i686-unknown-linux-gnu + fi script: - cargo build --verbose - if [ $TRAVIS_OS_NAME = osx ]; then cargo build --target x86_64-apple-ios --verbose; fi + - if [ $TRAVIS_OS_NAME = linux ]; then cargo build --target i686-unknown-linux-gnu --verbose; fi - cargo test --verbose os: diff --git a/CHANGELOG.md b/CHANGELOG.md index f7b43d94..7c3bea35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased - Fixed issue of calls to `set_inner_size` blocking on Windows. +- Fixed the X11 backed on 32bit targets # Version 0.8.2 (2017-09-28) diff --git a/src/platform/linux/x11/window.rs b/src/platform/linux/x11/window.rs index 1b1ae60f..e0e75b6b 100644 --- a/src/platform/linux/x11/window.rs +++ b/src/platform/linux/x11/window.rs @@ -251,7 +251,7 @@ impl Window2 { Ok(window) } - fn set_netwm(display: &Arc, window: u64, root: u64, property: &str, val: bool) { + fn set_netwm(display: &Arc, window: ffi::Window, root: ffi::Window, property: &str, val: bool) { let state_atom = unsafe { with_c_str("_NET_WM_STATE", |state| (display.xlib.XInternAtom)(display.display, state, 0) @@ -276,7 +276,7 @@ impl Window2 { data: { let mut data = ffi::ClientMessageData::new(); // This first `long` is the action; `1` means add/set following property. - data.set_long(0, val as i64); + data.set_long(0, val as c_long); // This second `long` is the property to set (fullscreen) data.set_long(1, atom as c_long); data