Add mouse window controls and finer display scaling (#63)

Add configurable mouse and wheel bindings, window move and resize, tab drops, cross-output dragging, and device settings. Adjust display scaling in 0.05 increments.

Preserve opposite-edge positioning during scrolling resizes and show rows for edge drops into tabbed columns.
This commit is contained in:
Samuel Onoja authored and GitHub committed 2026-10-25 14:14:35 +01:00
1 parent ab11269246
commit ad00e55fe4
35 files changed
+3454 -512

No files matched your search

+25
View File
@@ -123,6 +123,31 @@ impl WorkspaceLayout {
}
}
pub fn place_window(
&mut self,
window: WindowId,
target: WindowId,
placement: ferese_layout::DropPlacement,
) -> Result<(), LayoutError> {
match self {
Self::Tree(layout) => layout.place_window(window, target, placement),
Self::Scrolling(layout) => layout.place_window(window, target, placement),
}
}
pub fn resize_edge(
&mut self,
window: WindowId,
edge: Direction,
delta: f64,
bounds: Rect,
) -> Result<bool, LayoutError> {
match self {
Self::Tree(layout) => layout.resize_edge(window, edge, delta, bounds),
Self::Scrolling(layout) => layout.resize_edge(window, edge, delta, bounds),
}
}
pub fn remove(&mut self, window: WindowId) -> Result<(), LayoutError> {
match self {
Self::Scrolling(layout) => layout.remove(window),