dep: bump xcb to 1.6.0
switch from the deprecated API we found unsoundness in to the one introduced in 1.6.0
This commit is contained in:
parent
388d291e82
commit
d759c64681
4 changed files with 6 additions and 12 deletions
|
|
@ -60,12 +60,6 @@ pub fn main(mut data: impl RunData) -> Option<()> {
|
|||
data.created_server();
|
||||
|
||||
let (xsock_wl, xsock_xwl) = UnixStream::pair().unwrap();
|
||||
// XCB takes responsibility for cleaning up this FD, but since connecting takes a RawFd at the
|
||||
// FFI level, see (`XState::new`), `xsock_wl`'s destructor also closes the FD, leading the FD
|
||||
// being closed twice. This mainly caused problems in the integration tests, where `xsock_wl`'s
|
||||
// destructor would be run after the descriptor was freed, leading to an opaque abort message.
|
||||
// See https://github.com/rust-x-bindings/rust-xcb/issues/282 for further explanation.
|
||||
let xsock_wl = Box::leak(Box::new(xsock_wl));
|
||||
// Prevent creation of new Xwayland command from closing fd
|
||||
rustix::io::fcntl_setfd(&xsock_xwl, rustix::io::FdFlags::empty()).unwrap();
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use bitflags::bitflags;
|
|||
use log::{debug, trace, warn};
|
||||
use std::collections::HashMap;
|
||||
use std::ffi::CString;
|
||||
use std::os::fd::{AsRawFd, BorrowedFd};
|
||||
use std::os::fd::BorrowedFd;
|
||||
use std::rc::Rc;
|
||||
use xcb::{x, Xid, XidNew};
|
||||
use xcb_util_cursor::{Cursor, CursorContext};
|
||||
|
|
@ -124,8 +124,8 @@ pub struct XState {
|
|||
impl XState {
|
||||
pub fn new(fd: BorrowedFd) -> Self {
|
||||
let connection = Rc::new(
|
||||
xcb::Connection::connect_to_fd_with_extensions(
|
||||
fd.as_raw_fd(),
|
||||
xcb::Connection::connect_with_fd_and_extensions(
|
||||
BorrowedFd::try_clone_to_owned(&fd).unwrap(),
|
||||
None,
|
||||
&[
|
||||
xcb::Extension::Composite,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue