linux/x11: Mark windows as destroyed after destroy request (#12892)
Thorsten Ball
created
Turns out we still get FocusOut and UnmapNotify events after the window
has been destroyed, which resulted in error messages popping up because
we can't find the window anymore that we want to mark as unfocused.
Release Notes:
- N/A
@@ -154,6 +154,7 @@ pub struct Callbacks {
}
pub struct X11WindowState {
+ pub destroyed: bool,
client: X11ClientStatePtr,
executor: ForegroundExecutor,
atoms: XcbAtoms,
@@ -368,6 +369,7 @@ impl X11WindowState {
input_handler: None,
appearance,
handle,
+ destroyed: false,
}
}
@@ -394,6 +396,10 @@ impl Drop for X11Window {
.unwrap();
self.0.xcb_connection.flush().unwrap();
+ // Mark window as destroyed so that we can filter out when X11 events
+ // for it still come in.
+ state.destroyed = true;
+
let this_ptr = self.0.clone();
let client_ptr = state.client.clone();
state