aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-08-13 09:15:57 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-08-13 09:15:57 +0300
commit883763c17224c69094340d3abc2f9e4cb656966a (patch)
treec00a17f5b1283ff78cc8e8a9bc3e819c9c4a3049 /src/niri.rs
parent9063a5dbdc0d4470dc1e13ce5749838e32af6a44 (diff)
downloadniri-883763c17224c69094340d3abc2f9e4cb656966a.tar.gz
niri-883763c17224c69094340d3abc2f9e4cb656966a.tar.bz2
niri-883763c17224c69094340d3abc2f9e4cb656966a.zip
Implement stub mutter-x11-interop
Allows xdp-gnome dialogs to work with X11 clients. Fixes https://github.com/YaLTeR/niri/issues/594
Diffstat (limited to 'src/niri.rs')
-rw-r--r--src/niri.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/niri.rs b/src/niri.rs
index 024df37e..9aec5ed1 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -118,6 +118,7 @@ use crate::ipc::server::IpcServer;
use crate::layout::{Layout, LayoutElement as _, MonitorRenderElement};
use crate::protocols::foreign_toplevel::{self, ForeignToplevelManagerState};
use crate::protocols::gamma_control::GammaControlManagerState;
+use crate::protocols::mutter_x11_interop::MutterX11InteropManagerState;
use crate::protocols::output_management::OutputManagementManagerState;
use crate::protocols::screencopy::{Screencopy, ScreencopyBuffer, ScreencopyManagerState};
use crate::pw_utils::{Cast, PipeWire};
@@ -233,6 +234,7 @@ pub struct Niri {
pub security_context_state: SecurityContextState,
pub gamma_control_manager_state: GammaControlManagerState,
pub activation_state: XdgActivationState,
+ pub mutter_x11_interop_state: MutterX11InteropManagerState,
pub seat: Seat<State>,
/// Scancodes of the keys to suppress.
@@ -1602,6 +1604,8 @@ impl Niri {
is_tty && !client.get_data::<ClientState>().unwrap().restricted
});
let activation_state = XdgActivationState::new::<State>(&display_handle);
+ let mutter_x11_interop_state =
+ MutterX11InteropManagerState::new::<State, _>(&display_handle, move |_| true);
let mut seat: Seat<State> = seat_state.new_wl_seat(&display_handle, backend.seat_name());
seat.add_keyboard(
@@ -1764,6 +1768,7 @@ impl Niri {
security_context_state,
gamma_control_manager_state,
activation_state,
+ mutter_x11_interop_state,
seat,
keyboard_focus: KeyboardFocus::Layout { surface: None },