aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-09-03 14:10:02 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-09-03 14:10:02 +0400
commit03a9fd8af3bbd8a0e6dbc33516dce83cce564166 (patch)
tree06fb61ea00609b42db1514e090d7f30198de282c /src/main.rs
parentdcc6a557774c8af0dc62839308130ee6a71fc629 (diff)
downloadniri-03a9fd8af3bbd8a0e6dbc33516dce83cce564166.tar.gz
niri-03a9fd8af3bbd8a0e6dbc33516dce83cce564166.tar.bz2
niri-03a9fd8af3bbd8a0e6dbc33516dce83cce564166.zip
Move all traits one layer up
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index c5912c6f..3b9014c0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -16,8 +16,9 @@ use std::env;
use std::ffi::OsString;
use clap::Parser;
-use niri::{Data, Niri};
+use niri::{Niri, State};
use smithay::reexports::calloop::EventLoop;
+use smithay::reexports::wayland_server::Display;
use tracing_subscriber::EnvFilter;
#[derive(Parser)]
@@ -28,6 +29,11 @@ struct Cli {
command: Vec<OsString>,
}
+struct LoopData {
+ display: Display<State>,
+ state: State,
+}
+
fn main() {
env::set_var("RUST_BACKTRACE", "1");
@@ -43,7 +49,9 @@ fn main() {
let _client = tracy_client::Client::start();
let mut event_loop = EventLoop::try_new().unwrap();
- let mut data = Data::new(event_loop.handle(), event_loop.get_signal());
+ let mut display = Display::new().unwrap();
+ let state = State::new(event_loop.handle(), event_loop.get_signal(), &mut display);
+ let mut data = LoopData { display, state };
if let Some((command, args)) = cli.command.split_first() {
if let Err(err) = std::process::Command::new(command).args(args).spawn() {
@@ -56,9 +64,9 @@ fn main() {
let _span = tracy_client::span!("loop callback");
// These should be called periodically, before flushing the clients.
- data.niri.monitor_set.refresh();
- data.niri.popups.cleanup();
- data.niri.update_focus();
+ data.state.niri.monitor_set.refresh();
+ data.state.niri.popups.cleanup();
+ data.state.update_focus();
{
let _span = tracy_client::span!("flush_clients");