aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Meissl <meissl.christian@gmail.com>2024-02-24 18:31:54 +0100
committerIvan Molodetskikh <yalterz@gmail.com>2024-02-28 13:19:41 +0400
commit5ac350d51c0f16be3e40355bcb25cf23d34cc662 (patch)
treea8e811d97b60b614216fbc4942c0562fe803bf78
parent494e98c1235133fd5267bfdfb9a5468f1115deff (diff)
downloadniri-5ac350d51c0f16be3e40355bcb25cf23d34cc662.tar.gz
niri-5ac350d51c0f16be3e40355bcb25cf23d34cc662.tar.bz2
niri-5ac350d51c0f16be3e40355bcb25cf23d34cc662.zip
chore: update smithay
-rw-r--r--Cargo.lock4
-rw-r--r--src/handlers/compositor.rs3
-rw-r--r--src/handlers/mod.rs4
-rw-r--r--src/handlers/xdg_shell.rs10
-rw-r--r--src/input.rs2
-rw-r--r--src/layout/mod.rs51
-rw-r--r--src/layout/workspace.rs31
-rw-r--r--src/niri.rs2
-rw-r--r--src/protocols/foreign_toplevel.rs4
9 files changed, 70 insertions, 41 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 22337d8f..2a19a002 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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