* InputManager: add nofollowmouse
with this, focus_follows_mouse=1 acts like focus_follows_mouse=2 on the specific windows defined by the user
* e
* e
biggest e of all time
* ctm: enable fade animation on nvidia driver versions 575 and above
* format if statement without braces; handle potential throw when checking for nvidia version file
* ci: close unwanted issues automatically
You want it, it's yours my friend.
* ci/close-issues: simplify
* ci/close-issues: try to handle large number of issues
* ci/close-issues: fix 'vaxerski'
* add doOnReadable to event loop manager
* move syncTimeline addWaiter to doOnReadable
* wait on dmabuf buffers to be readable
* don't over synchronize in scanout, also give present feedback on same buffer commit
* IHyprLayout: respect minimum window size
this prevents window warping, before we were not respecting the minimum size which caused the window to move suddenly, even though it would be sized to its minimum size.
* make CHLBufferReference not a SP anymore
* copy over release and acquire points in CHLBufferReference
* use CHLBufferReference in screencopy and toplevel export
TODO: use CHLBufferReference in direct scanout properly
the only problem is the scanout buffer release timing,
specifically the onBackendRelease mechanism
* cleanup SSurfaceState and surface pending commit tracking
* move surface code from DRMSyncobj, and move acquire to SSurfaceState
* use queue for comitted pending surface states like proto says
"The content update is placed in a queue until it becomes active." - wl_surface::commit
* drop, not release, prev buffer if 2nd buffer wl_surface.attach is sent
"A wl_buffer that has been attached and then replaced by another attach instead of committed will not receive a release event, and is not used by the compositor." - wl_surface::attach
The previous code didn't check if the chosen new workspace was bound to another monitor, causing buggy behavior where workspace was simultaneously open and not.
The fix simply uses `r+1` for new workspace selection.
Also, the previous code would select rightmost workspace + 1, creating large gaps in workspace IDs in some scenarios. Example (`()` and `[]` indicate workspaces on different monitors):
`(1), 2, 3, 4, 5, 6, 7, 8, 9, [10]`
Swipe right on `()` monitor would create:
`(1), 2, 3, 4, 5, 6, 7, 8, 9, [10], (11)`
But with this commit:
`(1), (2), 3, 4, 5, 6, 7, 8, 9, [10]`