diff options
Diffstat (limited to 'src/clients/mod.rs')
-rw-r--r-- | src/clients/mod.rs | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/src/clients/mod.rs b/src/clients/mod.rs index 76c30bb..58a5501 100644 --- a/src/clients/mod.rs +++ b/src/clients/mod.rs @@ -112,7 +112,6 @@ impl WM<'_> { pub struct ClientState { /// The current arranging function. /// This function is expected to ensure that all clients are the correct size, reconfigure them if needed, and map/unmap as needed. - /// The connection will be flushed after it is called. arrange: &'static dyn Fn(&mut MonitorInfo, &Connection<'_>), /// A client list for each monitor. @@ -124,7 +123,6 @@ pub struct ClientState { impl ClientState { /// Update the recorded monitors and monitor sizes, retiling if necessary. - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. pub fn update_geometry(&mut self, conn: &Connection<'_>) -> Result<()> { let mut dirty = false; if conn.active_extensions().any(|e| e == Extension::Xinerama) { @@ -172,7 +170,6 @@ impl ClientState { } /// Start managing the given window, adding it to the client list and ensuring its configuration is valid. - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. pub fn manage(&mut self, conn: &Connection<'_>, window: Window) { // TODO: inherit from parent if window is transient let mon = self.focused_mon(); @@ -231,7 +228,6 @@ impl ClientState { } /// Stop managing the given window, and also unset attributes unless `already_destroyed` is true. - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. pub fn unmanage(&mut self, conn: &Connection<'_>, window: Window, already_destroyed: bool) { let Some((mon, i)) = self.find_client_pos(window) else { return; @@ -251,12 +247,12 @@ impl ClientState { /// Refocus on the client with the given co-ordinates, setting X11 properties as required. /// If the given index is invalid, focus on the root instead. - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. pub fn refocus(&mut self, conn: &Connection<'_>, mon: usize, i: usize) { self.unfocus(conn); if let Some(new) = self.set_focused(mon, i) { new.set_border(conn, conn.colours.border_focused()); new.set_urgent(false); + new.sync_properties(conn, true); if !new.never_focus() { conn.send_request(&SetInputFocus { revert_to: InputFocus::PointerRoot, @@ -286,11 +282,9 @@ impl ClientState { } /// Unfocus the currently focused window, if it exists. - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. pub fn unfocus(&mut self, conn: &Connection<'_>) { if let Some(old) = self.focused_mut() { old.set_border(conn, conn.colours.border_normal()); - // TODO: clear some properties } } @@ -418,7 +412,6 @@ impl ClientState { } /// Rearrange all clients, reconfiguring them as needed. - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. pub fn rearrange(&mut self, conn: &Connection<'_>) { for mon in 0..self.monitor_count() { self.rearrange_monitor(conn, mon); @@ -426,7 +419,6 @@ impl ClientState { } /// Rearrange a specific monitor - /// This function sends multiple requests without checking them, so `conn.flush()` should be called after. fn rearrange_monitor(&mut self, conn: &Connection<'_>, mon: usize) { (self.arrange)(&mut self.mons[mon], conn); } |