diff options
| author | srdusr <[email protected]> | 2025-02-11 14:00:00 +0200 |
|---|---|---|
| committer | srdusr <[email protected]> | 2025-02-11 14:00:00 +0200 |
| commit | b1d69a552cdcc7370c4befd42ef2111c8b367c46 (patch) | |
| tree | 777c30cae47ab7f2d417c3132c8273fdf2bee3fc /crates/core/src | |
| parent | b1609928eeea54578cd0cd18935110260cb23a11 (diff) | |
| download | srdwm-b1d69a552cdcc7370c4befd42ef2111c8b367c46.tar.gz srdwm-b1d69a552cdcc7370c4befd42ef2111c8b367c46.zip | |
Add temporary diagnostics for two live-reproduced bugs
1. A popup's xdg_popup.grab (Firefox's own right-click menu, concretely)
receiving zero pointer input at all - no hover highlight, no click
effect, not even dismiss-on-miss - logs whether grab_popup actually
succeeds, since a silent failure there would explain exactly this.
2. srd dispatch activate_workspace returning {"ok":true} without ever
changing the current workspace, confirmed via a raw socket request
bypassing the CLI entirely. switch_workspace's own logic reads
correct; logs its actual inputs/state to find out why the real
process disagrees with it.
Remove once both are resolved.
Diffstat (limited to 'crates/core/src')
| -rw-r--r-- | crates/core/src/manager/workspaces.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/crates/core/src/manager/workspaces.rs b/crates/core/src/manager/workspaces.rs index 6ffb21b..ddc8341 100644 --- a/crates/core/src/manager/workspaces.rs +++ b/crates/core/src/manager/workspaces.rs @@ -50,7 +50,14 @@ impl WindowManager { /// doesn't need its own separate bookkeeping. pub fn switch_workspace(&mut self, id: WorkspaceId) { let target = if self.auto_back_and_forth && id == self.current_workspace { self.previous_workspace } else { id }; - if self.workspaces.iter().any(|w| w.id == target) && target != self.current_workspace { + let exists = self.workspaces.iter().any(|w| w.id == target); + log::warn!( + "SWITCH-WS-DIAG requested_id={id} auto_back_and_forth={} current={} previous={} target={target} exists={exists}", + self.auto_back_and_forth, + self.current_workspace, + self.previous_workspace + ); + if exists && target != self.current_workspace { self.previous_workspace = self.current_workspace; self.current_workspace = target; } |