feat: support xdg toplevel icons

This commit is contained in:
Samuel Onoja committed 2026-09-25 02:22:44 +01:00
1 parent dbabe95a5e
commit 1a024e580b
2 files changed
+8

No files matched your search

+4
View File
@@ -37,6 +37,7 @@ use smithay::{
}, },
tablet_manager::TabletSeatHandler, tablet_manager::TabletSeatHandler,
xdg_foreign::{XdgForeignHandler, XdgForeignState}, xdg_foreign::{XdgForeignHandler, XdgForeignState},
xdg_toplevel_icon::XdgToplevelIconHandler,
}, },
}; };
@@ -233,6 +234,8 @@ impl XdgForeignHandler for Ferese {
} }
} }
impl XdgToplevelIconHandler for Ferese {}
smithay::delegate_compositor!(Ferese); smithay::delegate_compositor!(Ferese);
smithay::delegate_cursor_shape!(Ferese); smithay::delegate_cursor_shape!(Ferese);
smithay::delegate_data_device!(Ferese); smithay::delegate_data_device!(Ferese);
@@ -257,3 +260,4 @@ smithay::delegate_xdg_activation!(Ferese);
smithay::delegate_xdg_decoration!(Ferese); smithay::delegate_xdg_decoration!(Ferese);
smithay::delegate_xdg_foreign!(Ferese); smithay::delegate_xdg_foreign!(Ferese);
smithay::delegate_xdg_shell!(Ferese); smithay::delegate_xdg_shell!(Ferese);
smithay::delegate_xdg_toplevel_icon!(Ferese);
+4
View File
@@ -68,6 +68,7 @@ use smithay::{
viewporter::ViewporterState, viewporter::ViewporterState,
xdg_activation::XdgActivationState, xdg_activation::XdgActivationState,
xdg_foreign::XdgForeignState, xdg_foreign::XdgForeignState,
xdg_toplevel_icon::XdgToplevelIconManager,
}, },
}; };
@@ -126,6 +127,7 @@ pub struct Ferese {
pub xdg_activation_state: XdgActivationState, pub xdg_activation_state: XdgActivationState,
pub xdg_foreign_state: XdgForeignState, pub xdg_foreign_state: XdgForeignState,
pub xdg_shell_state: XdgShellState, pub xdg_shell_state: XdgShellState,
pub xdg_toplevel_icon_manager: XdgToplevelIconManager,
} }
pub struct RuntimeConfig { pub struct RuntimeConfig {
@@ -321,6 +323,7 @@ impl Ferese {
let layer_shell_state = WlrLayerShellState::new::<Self>(&display_handle); let layer_shell_state = WlrLayerShellState::new::<Self>(&display_handle);
let xdg_activation_state = XdgActivationState::new::<Self>(&display_handle); let xdg_activation_state = XdgActivationState::new::<Self>(&display_handle);
let xdg_foreign_state = XdgForeignState::new::<Self>(&display_handle); let xdg_foreign_state = XdgForeignState::new::<Self>(&display_handle);
let xdg_toplevel_icon_manager = XdgToplevelIconManager::new::<Self>(&display_handle);
let mut seat_state = SeatState::new(); let mut seat_state = SeatState::new();
let mut seat = seat_state.new_wl_seat(&display_handle, "ferese-winit"); let mut seat = seat_state.new_wl_seat(&display_handle, "ferese-winit");
seat.add_keyboard(Default::default(), 200, 25)?; seat.add_keyboard(Default::default(), 200, 25)?;
@@ -388,6 +391,7 @@ impl Ferese {
xdg_activation_state, xdg_activation_state,
xdg_foreign_state, xdg_foreign_state,
xdg_shell_state, xdg_shell_state,
xdg_toplevel_icon_manager,
}) })
} }