diff options
| author | Christian Meissl <meissl.christian@gmail.com> | 2024-02-24 18:31:54 +0100 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-02-28 13:19:41 +0400 |
| commit | 5ac350d51c0f16be3e40355bcb25cf23d34cc662 (patch) | |
| tree | a8e811d97b60b614216fbc4942c0562fe803bf78 | |
| parent | 494e98c1235133fd5267bfdfb9a5468f1115deff (diff) | |
| download | niri-5ac350d51c0f16be3e40355bcb25cf23d34cc662.tar.gz niri-5ac350d51c0f16be3e40355bcb25cf23d34cc662.tar.bz2 niri-5ac350d51c0f16be3e40355bcb25cf23d34cc662.zip | |
chore: update smithay
| -rw-r--r-- | Cargo.lock | 4 | ||||
| -rw-r--r-- | src/handlers/compositor.rs | 3 | ||||
| -rw-r--r-- | src/handlers/mod.rs | 4 | ||||
| -rw-r--r-- | src/handlers/xdg_shell.rs | 10 | ||||
| -rw-r--r-- | src/input.rs | 2 | ||||
| -rw-r--r-- | src/layout/mod.rs | 51 | ||||
| -rw-r--r-- | src/layout/workspace.rs | 31 | ||||
| -rw-r--r-- | src/niri.rs | 2 | ||||
| -rw-r--r-- | src/protocols/foreign_toplevel.rs | 4 |
9 files changed, 70 insertions, 41 deletions
@@ -3072,7 +3072,7 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "smithay" version = "0.3.0" -source = "git+https://github.com/Smithay/smithay.git#3de7636e6cb562a1b9f14c76e17b0e4b27381c22" +source = "git+https://github.com/Smithay/smithay.git#b62ced79c70030680cdcd3d03233bc6b8df722e2" dependencies = [ "appendlist", "bitflags 2.4.2", @@ -3144,7 +3144,7 @@ dependencies = [ [[package]] name = "smithay-drm-extras" version = "0.1.0" -source = "git+https://github.com/Smithay/smithay.git#3de7636e6cb562a1b9f14c76e17b0e4b27381c22" +source = "git+https://github.com/Smithay/smithay.git#b62ced79c70030680cdcd3d03233bc6b8df722e2" dependencies = [ "drm", "edid-rs", diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs index 2f842176..1c3b97c6 100644 --- a/src/handlers/compositor.rs +++ b/src/handlers/compositor.rs @@ -129,6 +129,7 @@ impl CompositorHandler for State { let parent = window .toplevel() + .expect("no x11 support") .parent() .and_then(|parent| self.niri.layout.find_window_and_output(&parent)) // Only consider the parent if we configured the window for the same @@ -168,7 +169,7 @@ impl CompositorHandler for State { // The toplevel remains unmapped. let unmapped = entry.get(); if unmapped.needs_initial_configure() { - let toplevel = unmapped.window.toplevel().clone(); + let toplevel = unmapped.window.toplevel().expect("no x11 support").clone(); self.queue_initial_configure(toplevel); } return; diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs index ec1a20a8..8e92ea6e 100644 --- a/src/handlers/mod.rs +++ b/src/handlers/mod.rs @@ -64,6 +64,7 @@ use crate::utils::output_size; impl SeatHandler for State { type KeyboardFocus = WlSurface; type PointerFocus = WlSurface; + type TouchFocus = WlSurface; fn seat_state(&mut self) -> &mut SeatState<State> { &mut self.niri.seat_state @@ -339,7 +340,7 @@ impl ForeignToplevelHandler for State { fn close(&mut self, wl_surface: WlSurface) { if let Some((window, _)) = self.niri.layout.find_window_and_output(&wl_surface) { - window.toplevel().send_close(); + window.toplevel().expect("no x11 support").send_close(); } } @@ -348,6 +349,7 @@ impl ForeignToplevelHandler for State { { if !window .toplevel() + .expect("no x11 support") .current_state() .capabilities .contains(xdg_toplevel::WmCapabilities::Fullscreen) diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index 590dc7a1..cf23d264 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -112,7 +112,7 @@ impl XdgShellHandler for State { fn new_toplevel(&mut self, surface: ToplevelSurface) { let wl_surface = surface.wl_surface().clone(); - let unmapped = Unmapped::new(Window::new(surface)); + let unmapped = Unmapped::new(Window::new_wayland_window(surface)); let existing = self.niri.unmapped_windows.insert(wl_surface, unmapped); assert!(existing.is_none()); } @@ -210,7 +210,9 @@ impl XdgShellHandler for State { } let layout_focus = self.niri.layout.focus(); - if Some(&root) != layout_focus.map(|win| win.toplevel().wl_surface()) { + if Some(&root) + != layout_focus.map(|win| win.toplevel().expect("no x11 support").wl_surface()) + { let _ = PopupManager::dismiss_popup(&root, &popup); return; } @@ -771,7 +773,9 @@ impl State { pub fn update_reactive_popups(&self, window: &Window, output: &Output) { let _span = tracy_client::span!("Niri::update_reactive_popups"); - for (popup, _) in PopupManager::popups_for_surface(window.toplevel().wl_surface()) { + for (popup, _) in PopupManager::popups_for_surface( + window.toplevel().expect("no x11 support").wl_surface(), + ) { match popup { PopupKind::Xdg(ref popup) => { if popup.with_pending_state(|state| state.positioner.reactive) { diff --git a/src/input.rs b/src/input.rs index 93c56474..3d470eba 100644 --- a/src/input.rs +++ b/src/input.rs @@ -371,7 +371,7 @@ impl State { } Action::CloseWindow => { if let Some(window) = self.niri.layout.focus() { - window.toplevel().send_close(); + window.toplevel().expect("no x11 support").send_close(); } } Action::FullscreenWindow => { diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 61bdaa8d..ba8663a1 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -247,35 +247,45 @@ impl LayoutElement for Window { } fn request_size(&self, size: Size<i32, Logical>) { - self.toplevel().with_pending_state(|state| { - state.size = Some(size); - state.states.unset(xdg_toplevel::State::Fullscreen); - }); + self.toplevel() + .expect("no x11 support") + .with_pending_state(|state| { + state.size = Some(size); + state.states.unset(xdg_toplevel::State::Fullscreen); + }); } fn request_fullscreen(&self, size: Size<i32, Logical>) { - self.toplevel().with_pending_state(|state| { - state.size = Some(size); - state.states.set(xdg_toplevel::State::Fullscreen); - }); + self.toplevel() + .expect("no x11 support") + .with_pending_state(|state| { + state.size = Some(size); + state.states.set(xdg_toplevel::State::Fullscreen); + }); } fn min_size(&self) -> Size<i32, Logical> { - with_states(self.toplevel().wl_surface(), |state| { - let curr = state.cached_state.current::<SurfaceCachedState>(); - curr.min_size - }) + with_states( + self.toplevel().expect("no x11 support").wl_surface(), + |state| { + let curr = state.cached_state.current::<SurfaceCachedState>(); + curr.min_size + }, + ) } fn max_size(&self) -> Size<i32, Logical> { - with_states(self.toplevel().wl_surface(), |state| { - let curr = state.cached_state.current::<SurfaceCachedState>(); - curr.max_size - }) + with_states( + self.toplevel().expect("no x11 support").wl_surface(), + |state| { + let curr = state.cached_state.current::<SurfaceCachedState>(); + curr.max_size + }, + ) } fn is_wl_surface(&self, wl_surface: &WlSurface) -> bool { - self.toplevel().wl_surface() == wl_surface + self.toplevel().expect("no x11 support").wl_surface() == wl_surface } fn set_preferred_scale_transform(&self, scale: i32, transform: Transform) { @@ -285,7 +295,10 @@ impl LayoutElement for Window { } fn has_ssd(&self) -> bool { - self.toplevel().current_state().decoration_mode + self.toplevel() + .expect("no x11 support") + .current_state() + .decoration_mode == Some(zxdg_toplevel_decoration_v1::Mode::ServerSide) } @@ -305,6 +318,7 @@ impl LayoutElement for Window { fn is_fullscreen(&self) -> bool { self.toplevel() + .expect("no x11 support") .current_state() .states .contains(xdg_toplevel::State::Fullscreen) @@ -312,6 +326,7 @@ impl LayoutElement for Window { fn is_pending_fullscreen(&self) -> bool { self.toplevel() + .expect("no x11 support") .with_pending_state(|state| state.states.contains(xdg_toplevel::State::Fullscreen)) } } diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs index 2f11cc4f..49c1b53d 100644 --- a/src/layout/workspace.rs +++ b/src/layout/workspace.rs @@ -361,15 +361,18 @@ impl<W: LayoutElement> Workspace<W> { set_preferred_scale_transform(window, output); } - window.toplevel().with_pending_state(|state| { - if state.states.contains(xdg_toplevel::State::Fullscreen) { - state.size = Some(self.view_size); - } else { - state.size = Some(self.new_window_size(width)); - } + window + .toplevel() + .expect("no x11 support") + .with_pending_state(|state| { + if state.states.contains(xdg_toplevel::State::Fullscreen) { + state.size = Some(self.view_size); + } else { + state.size = Some(self.new_window_size(width)); + } - state.bounds = Some(self.toplevel_bounds()); - }); + state.bounds = Some(self.toplevel_bounds()); + }); } fn compute_new_view_offset_for_column(&self, current_x: i32, idx: usize) -> i32 { @@ -1211,11 +1214,15 @@ impl Workspace<Window> { && col.active_tile_idx == tile_idx; win.set_activated(active); - win.toplevel().with_pending_state(|state| { - state.bounds = Some(bounds); - }); + win.toplevel() + .expect("no x11 support") + .with_pending_state(|state| { + state.bounds = Some(bounds); + }); - win.toplevel().send_pending_configure(); + win.toplevel() + .expect("no x11 support") + .send_pending_configure(); win.refresh(); } } diff --git a/src/niri.rs b/src/niri.rs index acb93e64..5b2491d9 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -478,7 +478,7 @@ impl State { self.niri .layout .focus() - .map(|win| win.toplevel().wl_surface().clone()) + .map(|win| win.toplevel().expect("no x11 support").wl_surface().clone()) }; let layer_focus = |surface: &LayerSurface| { surface diff --git a/src/protocols/foreign_toplevel.rs b/src/protocols/foreign_toplevel.rs index b574b51c..f1516cc4 100644 --- a/src/protocols/foreign_toplevel.rs +++ b/src/protocols/foreign_toplevel.rs @@ -96,7 +96,7 @@ pub fn refresh(state: &mut State) { // the previous window and only then activate the newly focused window. let mut focused = None; state.niri.layout.with_windows(|window, output| { - let wl_surface = window.toplevel().wl_surface(); + let wl_surface = window.toplevel().expect("no x11 support").wl_surface(); with_states(wl_surface, |states| { let role = states @@ -116,7 +116,7 @@ pub fn refresh(state: &mut State) { // Finally, refresh the focused window. if let Some((window, output)) = focused { - let wl_surface = window.toplevel().wl_surface(); + let wl_surface = window.toplevel().expect("no x11 support").wl_surface(); with_states(wl_surface, |states| { let role = states |
