fix some floating windows being split
This commit is contained in:
parent
ab95a4b019
commit
b6bc571b52
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -653,7 +653,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "sway-flash-indicator"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
dependencies = [
|
||||
"directories",
|
||||
"futures-util",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "sway-flash-indicator"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Maintainer: Alex Janka <alex@alexjanka.com>
|
||||
|
||||
pkgname=sway-flash-indicator
|
||||
pkgver=0.2.0
|
||||
pkgver=0.2.1
|
||||
pkgrel=1
|
||||
pkgdesc="flashes sway indicator border rather than always showing it"
|
||||
arch=('x86_64' 'aarch64')
|
||||
|
|
30
src/main.rs
30
src/main.rs
|
@ -60,22 +60,26 @@ async fn main() -> Res<()> {
|
|||
}
|
||||
}
|
||||
swayipc_async::Event::Window(window)
|
||||
// TODO: change on window closed also
|
||||
// the node we're given is the one that closes
|
||||
if window.change != swayipc_async::WindowChange::Mark =>
|
||||
{
|
||||
// TODO: also change on window closed -
|
||||
// the node we're given is the one that closes
|
||||
let node = window.container;
|
||||
|
||||
let (width, height) = (node.window_rect.width, node.window_rect.height);
|
||||
let ratio = (width as f64) / (height as f64);
|
||||
let autosplit_ratio =
|
||||
CONFIG.get().ok_or(Error::NoMatchingConfig)?.autosplit_ratio;
|
||||
if let Err(e) = if ratio > autosplit_ratio {
|
||||
autosplit_connection.run_command("splith").await
|
||||
} else {
|
||||
autosplit_connection.run_command("splitv").await
|
||||
} {
|
||||
log::warn!("error {e:?} setting split");
|
||||
if node.node_type == swayipc_async::NodeType::Con {
|
||||
let (width, height) = (node.window_rect.width, node.window_rect.height);
|
||||
if width == 0 || height == 0 {
|
||||
continue;
|
||||
}
|
||||
let ratio = (width as f64) / (height as f64);
|
||||
let autosplit_ratio =
|
||||
CONFIG.get().ok_or(Error::NoMatchingConfig)?.autosplit_ratio;
|
||||
if let Err(e) = if ratio > autosplit_ratio {
|
||||
autosplit_connection.run_command("splith").await
|
||||
} else {
|
||||
autosplit_connection.run_command("splitv").await
|
||||
} {
|
||||
log::warn!("error {e:?} setting split");
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
|
|
Loading…
Reference in a new issue