Skip to content

fix (attempt 2): Attempt to clean up state more thoroughly when grab fails #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed

Conversation

icyflame
Copy link
Owner

An improvement to the first attempt at this fix here: #1

With this change, I am attempting to clean up the state right up until the caller of the preview_navigate function.

If this does not work, then disabling the minimap would be the only option. The minimap is probably the reason that preview_navigate is called as the key handler.

When the minimap is open, both the keyboard and mouse are taken by the minimap. The minimap does not respond to mouse click events, however, it responds to scroll and keypress down events as long as the modifier key is pressed.

There might be some way to make the minimap not even require a grab in the first place. (Scrolling through the windows in the minimap does not seem like a very useful feature anyway.) This could be a potential avenue to go down if this attempt does not work.

Siddharth Kannan added 5 commits April 4, 2025 10:47
I saw an error in the journal which shows that `dispatcher` was undefined. This would happen when
PaperWM is started immediately after Gnome Shell starts:

	Apr 07 09:36:43 skannan--20250106--BQ374 gnome-shell[3651]: JS ERROR: TypeError: dispatcher is undefined
																getActionDispatcher@/home/siddharth/.local/share/gnome-shell/extensions/paperwm@paperwm.github.com/navigator.js:470:2
																begin@/home/siddharth/.local/share/gnome-shell/extensions/paperwm@paperwm.github.com/grab.js:56:27
																grabBegin@/home/siddharth/.local/share/gnome-shell/extensions/paperwm@paperwm.github.com/tiling.js:3639:20
																init/<@/home/siddharth/.local/share/gnome-shell/extensions/paperwm@paperwm.github.com/tiling.js:1759:88

This was caused because I changed the check from `if (dispatcher)` which checks whether `dispatcher`
is truthy, to `if (dispatcher === null)`, which only checks if it is `null`. `undefined` would have
failed the previous check while the second check did succeed and ended up calling `dispatcher.mode
|= mode` which resulted in an error. I had to restart PaperWM in order to recover from this error.

This change restores the code back to checking for truthy values.

Also, all the log lines now include "grab modal" so that I can get a summarized view of how this
error is changing over time with the various attempted fixes.
@icyflame
Copy link
Owner Author

icyflame commented May 9, 2025

I have opened a cleaner fix in the upstream project: paperwm#1031, paperwm#1032. I will close this PR in favor of those PRs.

@icyflame icyflame closed this May 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant