|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
| 5 | +## 0.7.0 |
| 6 | + |
| 7 | +### Breaking changes |
| 8 | +`DrmSyncobjHandler::drm_syncobj_state` is now Optional. |
| 9 | +Whenever state is None `ImportTimeline` request will result in `InvalidTimeline` protocol error. |
| 10 | +This allows one to destroy DrmSyncobjState by calling `DrmSyncobjState::into_global()` |
| 11 | +```diff |
| 12 | +-fn DrmSyncobjHandler::drm_syncobj_state(&mut self) -> &mut DrmSyncobjState |
| 13 | ++fn DrmSyncobjHandler::drm_syncobj_state(&mut self) -> Option<&mut DrmSyncobjState> |
| 14 | +``` |
| 15 | + |
| 16 | +`DrmTimeline` constructor now accepts OwnedFd: |
| 17 | +```diff |
| 18 | +-fn DrmTimeline::new(device: &DrmDeviceFd, fd: BorrowedFd<'_>) -> io::Result<Self> |
| 19 | ++fn DrmTimeline::new(device: &DrmDeviceFd, fd: OwnedFd) -> io::Result<Self> |
| 20 | +``` |
| 21 | +`DrmSyncPoint::eventfd` now returns `Arc<OwnedFd>`: |
| 22 | +```diff |
| 23 | +-fn DrmSyncPoint::eventfd(&self) -> io::Result<OwnedFd> |
| 24 | ++fn DrmSyncPoint::eventfd(&self) -> io::Result<Arc<OwnedFd>> |
| 25 | +``` |
| 26 | +`GbmFramebufferExporter` constructor now accepts `import_node`, |
| 27 | +it will be used to filter DMA-BUFs to only those originating from a specific device before considering them for direct scanout. |
| 28 | +If `import_node` is `None` direct-scanout of client-buffers won't be used. |
| 29 | +```diff |
| 30 | +-fn GbmFramebufferExporter::new(gbm: Device<A>) -> Self |
| 31 | ++fn GbmFramebufferExporter::new(gbm: Device<A>, import_node: Option<DrmNode>) -> Self |
| 32 | +``` |
| 33 | + |
| 34 | +### Additions |
| 35 | + |
| 36 | +#### WeakDrmDeviceFd |
| 37 | +```rs |
| 38 | +/// Returns a weak reference to the underlying device |
| 39 | +fn DrmDeviceFd::downgrade(&self) -> WeakDrmDeviceFd; |
| 40 | +/// Construct an empty Weak reference, that will never upgrade successfully |
| 41 | +fn WeakDrmDeviceFd::new() -> Self; |
| 42 | +/// Try to upgrade to a strong reference |
| 43 | +fn WeakDrmDeviceFd::upgrade(&self) -> Option<DrmDeviceFd>; |
| 44 | +``` |
| 45 | + |
| 46 | +#### KeyboardHandle::set_modifier_state |
| 47 | +```rs |
| 48 | +/// Set the modifiers state. |
| 49 | +fn KeyboardHandle::set_modifier_state(&self, mods_state: ModifiersState) -> u32; |
| 50 | +/// Serialize modifier state back to be sent to xkb. |
| 51 | +fn ModifiersState::serialize_back(&self, state: &xkb::State) -> SerializedMods; |
| 52 | +``` |
| 53 | + |
| 54 | +#### XWaylandKeyboardGrab |
| 55 | +```rs |
| 56 | +/// Get the `zwp_xwayland_keyboard_grab_v1` object that created the grab |
| 57 | +fn XWaylandKeyboardGrab::grab(&self) -> &ZwpXwaylandKeyboardGrabV1; |
| 58 | +/// Grab is now clonable |
| 59 | +impl Clone for XWaylandKeyboardGrab; |
| 60 | +``` |
| 61 | + |
| 62 | +#### X11Surface |
| 63 | +```rs |
| 64 | +/// Returns the hints for the underlying X11 window |
| 65 | +fn X11Surface::hints(&self) -> Option<x11rb::properties::WmHints>; |
| 66 | +/// Get the client PID associated with the X11 window. |
| 67 | +fn X11Surface::get_client_pid(&self) -> Result<u32, Box<dyn Error>>; |
| 68 | +``` |
| 69 | + |
| 70 | +#### DrmSyncobjState |
| 71 | +```rs |
| 72 | +/// Destroys the state and returns the `GlobalId` for compositors to disable/destroy. |
| 73 | +fn DrmSyncobjState::into_global(self) -> GlobalId; |
| 74 | +/// Sets a new `import_device` to import the syncobj fds and wait on them. |
| 75 | +fn DrmSyncobjState::update_device(&mut self, import_device: DrmDeviceFd); |
| 76 | +``` |
| 77 | + |
| 78 | +#### xdg-toplevel-tag-v1 |
| 79 | +XdgToplevelTag protocol is now available in `smithay::wayland::xdg_toplevel_tag` module. |
| 80 | + |
| 81 | +#### cursor-shape-v1 |
| 82 | +CursorShape is now updated to version `2` |
| 83 | + |
| 84 | + |
5 | 85 | ## 0.6.0 |
6 | 86 |
|
7 | 87 | ### Breaking Changes |
|
0 commit comments