- Windows are now properly selected via EnterNotify events instead of using XQueryPointer. This is mainly notable for the --nodecorations option I added.
- Improved response time on rectangle drawing. Slop no longer creates a new rectangle every time the window selection changes, and it waits 0.01 seconds between moving/resizing rectangles for xorg to catch up and display the changes. This is a huge deal because now dragging a selection is super smooth.
- Added a --nodecorations option that lets you select subwindows (Thanks to EnterNotify events). Thus usually removing decorations from screenshots, but its effectiveness varies between different applications and window managers.
- --nokeyboard should be useless now. There's proper error handling, I've used a more formal way to "grab" the keyboard (So it should error less), and even if it fails to grab the keyboard you should still be able to cancel selections with keyboard presses albeit at the cost of having the key events fall through to other applications.
- Slop now blocks until all windows are cleaned up by xorg properly. There's actually events and functions for this that I overlooked (DestroyNotify, XIfEvent, CWEventMask, StructureNotifyMask). Before I'd destroy the window then just sleep for x amount of time hoping xorg would decide to clean up the window in time, but that doesn't work at all due to xorg relying on a responsive program to actually remove the window for whatever reason. So now I really won't be lying when I say that slop's rectangles won't show up in screenshots or video recordings now! (I hope)
- Slop prints two new variables on success now: "G" and "Cancel". G is set to the geometry of the selection (eg 1920x1080+0+0 ), Cancel is set to true or false depending on if the selection was canceled or failed in some way. These variables can make some scripts that use slop a whole lot cleaner and more reliable.
- Several bugfixes like the selection being 1 pixel off, the cursor being the wrong image when there was no drag selection, and slop forgetting which window you selected before you started dragging has been fixed.
- Thanks to Darkwater I added a --version option.