Breaking changes
DrmSyncobjHandler::drm_syncobj_state
is now Optional.
Whenever state is None ImportTimeline
request will result in InvalidTimeline
protocol error.
This allows one to destroy DrmSyncobjState by calling DrmSyncobjState::into_global()
-fn DrmSyncobjHandler::drm_syncobj_state(&mut self) -> &mut DrmSyncobjState
+fn DrmSyncobjHandler::drm_syncobj_state(&mut self) -> Option<&mut DrmSyncobjState>
DrmTimeline
constructor now accepts OwnedFd:
-fn DrmTimeline::new(device: &DrmDeviceFd, fd: BorrowedFd<'_>) -> io::Result<Self>
+fn DrmTimeline::new(device: &DrmDeviceFd, fd: OwnedFd) -> io::Result<Self>
DrmSyncPoint::eventfd
now returns Arc<OwnedFd>
:
-fn DrmSyncPoint::eventfd(&self) -> io::Result<OwnedFd>
+fn DrmSyncPoint::eventfd(&self) -> io::Result<Arc<OwnedFd>>
GbmFramebufferExporter
constructor now accepts import_node
,
it will be used to filter DMA-BUFs to only those originating from a specific device before considering them for direct scanout.
If import_node
is None
direct-scanout of client-buffers won't be used.
-fn GbmFramebufferExporter::new(gbm: Device<A>) -> Self
+fn GbmFramebufferExporter::new(gbm: Device<A>, import_node: Option<DrmNode>) -> Self
Additions
WeakDrmDeviceFd
/// Returns a weak reference to the underlying device
fn DrmDeviceFd::downgrade(&self) -> WeakDrmDeviceFd;
/// Construct an empty Weak reference, that will never upgrade successfully
fn WeakDrmDeviceFd::new() -> Self;
/// Try to upgrade to a strong reference
fn WeakDrmDeviceFd::upgrade(&self) -> Option<DrmDeviceFd>;
KeyboardHandle::set_modifier_state
/// Set the modifiers state.
fn KeyboardHandle::set_modifier_state(&self, mods_state: ModifiersState) -> u32;
/// Serialize modifier state back to be sent to xkb.
fn ModifiersState::serialize_back(&self, state: &xkb::State) -> SerializedMods;
XWaylandKeyboardGrab
/// Get the `zwp_xwayland_keyboard_grab_v1` object that created the grab
fn XWaylandKeyboardGrab::grab(&self) -> &ZwpXwaylandKeyboardGrabV1;
/// Grab is now clonable
impl Clone for XWaylandKeyboardGrab;
X11Surface
/// Returns the hints for the underlying X11 window
fn X11Surface::hints(&self) -> Option<x11rb::properties::WmHints>;
/// Get the client PID associated with the X11 window.
fn X11Surface::get_client_pid(&self) -> Result<u32, Box<dyn Error>>;
DrmSyncobjState
/// Destroys the state and returns the `GlobalId` for compositors to disable/destroy.
fn DrmSyncobjState::into_global(self) -> GlobalId;
/// Sets a new `import_device` to import the syncobj fds and wait on them.
fn DrmSyncobjState::update_device(&mut self, import_device: DrmDeviceFd);
xdg-toplevel-tag-v1
XdgToplevelTag protocol is now available in smithay::wayland::xdg_toplevel_tag
module.
cursor-shape-v1
CursorShape is now updated to version 2
Credits
- feat: implement KeyboardHandle::set_modifier_state by @erdii in #1721
- xwayland_keyboard_grab:
Clone
impl and accessor forZwpXwaylandKeyboardGrabV1
by @ids1024 in #1727 - Update
rand
andthiserror
dependencies by @ids1024 in #1703 - Fix incorrect tablet pen tilt handling in
libinput
backend by @eepysillycat in #1730 - input/keyboard: Use hash for ID of
KeymapFile
by @ids1024 in #1740 - fix: store updated mods_state in KbdInternal in KeyboardHandle.set_modifier_state by @erdii in #1734
- wayland: XDG toplevel tag protocol by @PolyMeilex in #1728
- impl Div for Size<N, Kind> by @m4rch3n1ng in #1733
- update to rustix 1.0 by @m4rch3n1ng in #1736
- implement a Point::new and a Size::new constructor by @m4rch3n1ng in #1732
- add get client id to x11 surface #2 by @PapyElGringo in #1741
- Expose x11 hints by @PapyElGringo in #1731
- chore: clippy fixes by @Drakulix in #1742
- wayland/cursor_shape: update to version 2 by @m4rch3n1ng in #1746
- wayland/drm_syncobj: Allow somewhat graceful migration/destruction by @Drakulix in #1739
- gles: Don't call
GenTextures
beforemake_current()
by @ids1024 in #1748 - compositor: Fix potential deadlocks locking parents by @Drakulix in #1749
- compositor/gbm: Don't scanout client buffers without explicit node matches by @Drakulix in #1755
New Contributors
- @erdii made their first contribution in #1721
- @eepysillycat made their first contribution in #1730
Full Changelog: v0.6.0...v0.7.0