Add eww close-all subcommand to close all running windows (#80)

* Add close-all command

* Add close-all command

* Re-add close-all using close_window method
This commit is contained in:
Axarva 2020-12-28 20:57:59 +05:45 committed by GitHub
parent f7d6bd4cb3
commit 58d57c4acd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View file

@ -29,6 +29,7 @@ pub enum EwwCommand {
window_name: WindowName,
},
KillServer,
CloseAll,
PrintState(crossbeam_channel::Sender<String>),
PrintDebug(crossbeam_channel::Sender<String>),
}
@ -81,6 +82,12 @@ impl App {
script_var_process::on_application_death();
std::process::exit(0);
}
EwwCommand::CloseAll => {
log::info!("Received close command, closing all windows");
for (window_name, _window) in self.windows.clone() {
self.close_window(&window_name)?;
}
}
EwwCommand::OpenWindow {
window_name,
pos,

View file

@ -84,6 +84,10 @@ pub enum ActionWithServer {
#[structopt(name = "kill")]
KillServer,
/// Close all windows, without killing the daemon
#[structopt(name = "close-all")]
CloseAll,
/// Print the current eww-state
#[structopt(name = "state")]
ShowState,
@ -139,6 +143,7 @@ impl ActionWithServer {
},
ActionWithServer::CloseWindow { window_name } => app::EwwCommand::CloseWindow { window_name },
ActionWithServer::KillServer => app::EwwCommand::KillServer,
ActionWithServer::CloseAll => app::EwwCommand::CloseAll,
ActionWithServer::ShowState => {
let (send, recv) = crossbeam_channel::unbounded();
return (app::EwwCommand::PrintState(send), Some(recv));